数据结构
一、排序
sort( )方法和sortet()函数
1、sort() 方法
记住,只有list有sort()方法,因为 list 1有序, 2可变 惹要排序,这两个条件缺一不可
list 调用 sort() 方法后,会改变原来list的顺序
str tuple 这两个序列元素不可变,改变其元素将会返回一个新的对象,set 和 dict 无序,所以都没有sort() 方法
lis = [2,6,3,4,1,9,5] lis.sort() print(lis)
输出:[1, 2, 3, 4, 5, 6, 9]
2、sorted() 函数
注意,sorted() 函数可以对str tuple list set dist所以系列排序,并且返回一个list对象,注意,返回的对象是list
def dictionairy(): key_value = {} # 初始化 key_value[2] = 56 key_value[1] = 2 key_value[5] = 12 key_value[4] = 24 key_value[6] = 18 key_value[3] = 323 # 因为字典的无序的,所有字典没有sort()方法,但是我们可以根据自己的需要调用sorted()方法对字典进行排序 # key_value.sort() 错,dict没有sort方法 print(sorted(key_value)) # [1, 2, 3, 4, 5, 6] print(sorted(key_value.keys())) # [1, 2, 3, 4, 5, 6] print(sorted((key_value.values()))) # [2, 12, 18, 24, 56, 323] print(sorted(key_value.items())) # [(1, 2), (2, 56), (3, 323), (4, 24), (5, 12), (6, 18)] print("按键(key)排序:") for i in sorted(key_value): print((i, key_value[i]), end=" ") # (1, 2), (2, 56), (3, 323), (4, 24), (5, 12), (6, 18) print() print("按值(value)排序:") # 匿名函数把key和value的位置对换一下,或者直接返回value,key可以忽略。 print(sorted(key_value.items(), key=lambda kv: kv[1])) # [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)] dictionairy() # 列表字典排序 lis = [{"name": "Taobao", "age": 100}, {"name": "Runoob", "age": 7}, {"name": "Google", "age": 100}, {"name": "Wiki", "age": 200}] # 用list的sort()方法排序:会改变原来list的顺序 print("用list的sort()方法排序: ") lis.sort(key=lambda item:item['age'],reverse=True) print(lis) # 用全局函数sorted排序:不会改变原来list的顺序,而是返回一个新的list # 通过 age 升序排序 print("列表通过 age 升序排序: ") l = sorted(lis, key=lambda i: i['age']) print(l) print(lis) # 先按 age 排序,再按 name 排序 print("列表通过 age 和 name 排序: ") print(sorted(lis, key=lambda i: (i['age'], i['name']))) # 按 age 降序排序 print("列表通过 age 降序排序: ") print(sorted(lis, key=lambda i: i['age'], reverse=True)) # 列表通过 age 升序排序: # [{'name': 'Runoob', 'age': 7}, {'name': 'Taobao', 'age': 100}, {'name': 'Google', 'age': 100}, {'name': 'Wiki', 'age': 200}] # # 列表通过 age 和 name 排序: # [{'name': 'Runoob', 'age': 7}, {'name': 'Google', 'age': 100}, {'name': 'Taobao', 'age': 100}, {'name': 'Wiki', 'age': 200}] # # 列表通过 age 降序排序: # [{'name': 'Wiki', 'age': 200}, {'name': 'Taobao', 'age': 100}, {'name': 'Google', 'age': 100}, {'name': 'Runoob', 'age': 7}] s = {'b','a','c'} print(s) s = sorted(s, reverse=True) print(s) lis = [2,6,3,4,1,9,5] lis.sort() print(lis)
二、同时遍历两个序列:用:zip() 该函数将两个序列合并成一个可迭代的序列
questions = ['name', 'quest', 'favorite color'] answers = ['lancelot', 'the holy grail', 'blue'] for q, a in zip(questions, answers): print(q, ":", a)

浙公网安备 33010602011771号