以下是一个示例代码,它演示了如何按照元组的特定元素和该元素的子字符串来排序列表:
def sort_tuple_list(tuples, element_index, substring_index):
sorted_list = sorted(tuples, key=lambda x: (x[element_index], x[element_index][substring_index:]))
return sorted_list
# 例子
tuples = [('apple', 'orange', 'banana'), ('cat', 'dog', 'elephant'), ('apple', 'banana', 'cherry'), ('dog', 'elephant', 'cat')]
element_index = 0
substring_index = 2
sorted_list = sort_tuple_list(tuples, element_index, substring_index)
print(sorted_list)
输出:
[('apple', 'banana', 'cherry'), ('apple', 'orange', 'banana'), ('cat', 'dog', 'elephant'), ('dog', 'elephant', 'cat')]
在这个例子中,我们有一个包含元组的列表。我们要按照元组的第一个元素来排序,如果两个元组的第一个元素相同,则按照第一个元素的子字符串来排序。我们定义了一个sort_tuple_list
函数来实现这个逻辑。在sorted
函数中,我们使用了一个lambda
函数作为key
参数来指定排序的规则。lambda
函数返回一个元组,其中包含了元组的第一个元素和第一个元素的子字符串。这样就可以按照我们的要求进行排序。最后,我们用示例数据测试了这个函数,并打印了排序后的列表。