zip sort sorted set方法的用法
zip
- 示例一
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
zip(x, y, z)
输出为:(这是在python2下的输出,在python3中的输出为对象的逻辑地址)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
- 示例二
x = [1, 2, 4, 23, 12,]
y = [24, 2, 89]
z = [23]
zip(x, y, z)
输出为:
[(1, 24, 23)]
- 示例三
在示例一的基础上对示例三继续进行zip函数
baidu = zip(*xyz)
输出为:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
这样有回到了原始的形式。
注:在函数调用中使用*list/tuple的方式表示将list/tuple中的每个元素分开对待, 作为对应位置参数传递给对应函数,(前提是对应的函数支持变长的参数个数)。
sort和sorted
这两个函数都是排序的函数,但是有着很大的区别:
- sort只是对list,也就是列表类型的数据进行排序而对于其他的数据类型则没有sort的排序方法。sorted方法对集合类的数据都可以进行排序,具体在python 中可以对list,tuple,dict,set等的数据类型进行排序。
- sort方法排序是在原来的list实现的排序,也就是会改变原来的list的顺序,而sorted则不会,不会对原来的list更改顺序,sorted是对原有的集合副本进行排序,不会更改原来的集合的顺序。
sorted(iterable, cmp=None, key=None, reverse=False)
L.sort(cmp=None, key=None, rreverse=False)
下面分别说一下cmp,key和reverse
- cmp选项: 这里默认是None,这个选项的含义和C语言库函数sort中的cmp的用法是相同的,在C语言中cmp是一个函数指针,而在python中没有函数指针的概念,但是python中有lambda表达式,可以使用lambda表达式代替C语言中的函数指针,除了lambda表达式之外,python还可以使用匿名函数方式。
- key其实和cmp的作用差不多,但是key还有其更广泛的用途,比如比较的是字典或者是元组数据类型,需要制定比较的是字典的key还是value,或者如果是tuple需要指定用元组的第几维数据进行比较。这就是key和cmp的不同。并且在官方的文档中指出key要比cmp快。
- reverse: 这个选项的值只能是True或者False,True表示对逆序排序,False表示正常的顺序排序。(正常的顺序:数字按升序,字符使用ascii排序)。
set方法
- set方法的参数可以是list, dict, tuple等
- set的返回值是有序的
- set的返回值是唯一的。
1⃣️
spotty = (1, 4, 23, 78, 2, 11, 1, 89, 3)
>>> set(spotty)
set([1, 2, 3, 4, 11, 78, 23, 89])
2⃣️
intel = {'core': 1997, 'dure':2008, 'i7': 2014}
>>> set(intel)
set(['core', 'dure', 'i7'])