求list的交集、并集、差集
set() 函数创建一个无序不重复元素集,通过set可方便求取list的交并差,并可去重
# 通过set 集合
>>> list1 = [1,2,3]
>>> list2=[2,3,4]
>>> set1 = set(list1)
>>> set2 = set(list2)
>>> set1 & set2 # 交集
{2, 3}
>>> set1 | set2 # 并集
{1, 2, 3, 4}
>>> set1 - set2 # 差集
{4}
>>> set1 ^ set2 # 求差异元素
{1, 4}
>>> list1=list1.extend(list2) # 合并
>>> list1=list(set(list1)) # 去重
>>> list1
{1,2,3,4}
list排序 (可返回索引)
1. list内置函数sort
缺点: 原来list被重置;只可用于list
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
2. python内置的全局sorted()
- 返回新的排序结果对象
- 可对任意可迭代序列使用
基础排序:
reverse参数可调节升序降序,默认升序,reverse=True
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
高级排序:
key参数:此函数将在每个元素比较前被调用,经处理后的结果作为排序的依据;
- 用复杂对象的某些值来排序,例如:
>>> student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
- 返回排序后元素的索引:
sorted_id = sorted(range(len(a)), key=lambda k: a[k], reverse=True)
print('元素索引序列:', sorted_id)
a: [1, 3, 4, 5, 2, 7, 9]
元素索引序列: [6, 5, 3, 2, 1, 4, 0]
标签:set,Python,list,list1,set1,sorted,排序
From: https://www.cnblogs.com/drokish/p/18155595