在本例中可以练习列表的排序。
1. 去除words 列表中重复的元素
code:
words = [
('Thanksgiving', '18', 9, 0, 0),
('white', '21', 8, 1, 1),
('garden', '4', 4, 3, 1),
('hospital', '2', 7, 5, 1),
('ninety-nine', '0', 8, 7, 1),
('strong', '12', 4, 11, 1),
('engineer', '16', 2, 0, 1),
('strict', '7', 2, 13, 1),
('wind', '8', 13, 9, 1),
('engineer', '16', 2, 0, 1),
('strict', '7', 2, 13, 1),
('wind', '8', 13, 9, 1)];
words = list(set(words ));
words
输出:
Out[77]:
[('ninety-nine', '0', 8, 7, 1), ('strict', '7', 2, 13, 1), ('engineer', '16', 2, 0, 1), ('wind', '8', 13, 9, 1), ('strong', '12', 4, 11, 1), ('white', '21', 8, 1, 1), ('Thanksgiving', '18', 9, 0, 0), ('hospital', '2', 7, 5, 1), ('garden', '4', 4, 3, 1)]
2. 按列表元素的两个属性排序, 本例中按照每个tuple元素索引为2和3的属性进行排序
code:
wordschaos = [('ninety-nine', '0', 8, 7, 1),
('strict', '7', 2, 13, 1),
('engineer', '16', 2, 0, 1),
('wind', '8', 13, 9, 1),
('strong', '12', 4, 11, 1),
('white', '21', 8, 1, 1),
('Thanksgiving', '18', 9, 0, 0),
('hospital', '2', 7, 5, 1),
('garden', '4', 4, 3, 1)];
wordsbyorder = sorted(wordschaos, key=lambda tup:( tup[2],tup[3]));
wordsbyorder
wordsbyorder = sorted(wordschaos, key=lambda tup:( tup[2],tup[3]));
wordsbyorder
输出为:
[('engineer', '16', 2, 0, 1), ('strict', '7', 2, 13, 1), ('garden', '4', 4, 3, 1), ('strong', '12', 4, 11, 1), ('hospital', '2', 7, 5, 1), ('white', '21', 8, 1, 1), ('ninety-nine', '0', 8, 7, 1), ('Thanksgiving', '18', 9, 0, 0), ('wind', '8', 13, 9, 1)]
知识点:
Lambda表达式:
在Python、C++等语言里都有Lambda表达式,又称为匿名表达式。这种能够接受一个函数作为参数的函数叫做「高阶函数」(higher-order function),是来自函数式编程(functional programming)的思想。 对抽象思维的要求较高。
一个简单的Lambda 表达式:
调用它运行:
输出结果为:
1
领取专属 10元无门槛券
私享最新 技术干货