1 from random import randint 2 3 # 随机生成10个[0,100]的整数 4 data = [randint(0,100) for i in range(10)] 5 print(data) 6 # [74, 23, 25, 62, 46, 98, 14, 80, 41, 1] 7 8 # 过滤出大于等于10的元素 9 r = filter(lambda x: x >= 10 , data) 10 print(r) 11 #<filter object at 0x000000000277D4A8> 12 print(type(r)) 13 #<class 'filter'> 14 # 将filter类型转换为list类型 15 print(list(r)) 16 #[74, 23, 25, 62, 46, 98, 14, 80, 41] 17 18 # 过滤出大于等于10的元素 19 # 比较上个方法而言,该方法效率更高,不需要进行类型转换 20 r = [i for i in data if i >= 10] 21 print(r) 22 #[74, 23, 25, 62, 46, 98, 14, 80, 41]
1 # 随机生成[1,9]:[0,100]的字典 2 r = {x : randint(0,100) for x in range(1, 10)} 3 print(r) 4 #{1: 60, 2: 33, 3: 27, 4: 30, 5: 7, 6: 5, 7: 99, 8: 34, 9: 45} 5 # 筛选出字典中值大于90的元素 6 r = {k:v for k,v in r.items() if v > 90} 7 print(r) 8 #{7: 99}
1 # 将字典中的数据按value递增排序 2 r = {x:randint(60,100) for x in 'abcdef'} 3 print(r) 4 #{'a': 72, 'b': 71, 'c': 83, 'd': 91, 'e': 79, 'f': 81} 5 6 # sorted将字典中的数据按key递增排序 7 # 产生的数据即key列表 8 data = sorted(r) 9 print(data) 10 #['a', 'b', 'c', 'd', 'e', 'f'] 11 12 #keys显示字典中所有key 13 print(r.keys()) 14 #dict_keys(['a', 'b', 'c', 'd', 'e', 'f']) 15 16 # values显示字典中所有value 17 print(r.values()) 18 #dict_values([72, 71, 83, 91, 79, 81]) 19
方法1:
print(r.items())
data = sorted(r.items(), key=lambda x:x[1])
#{71: 'b', 72: 'a', 79: 'e', 81: 'f', 83: 'c', 91: 'd'}
方法2:
20 # zip将字典按value:key顺序排列 21 data = zip(r.values(),r.keys()) 22 print(data) 23 #<zip object at 0x0000000002788F48> 24 print(type(data)) 25 #<class 'zip'> 26 27 # sorted将zip类型的数据按key递增排列 28 data = sorted(data) 29 print(type(data)) 30 #<class 'list'> 31 # 将list类型转换为dict类型 32 print(dict(data)) 33 #{71: 'b', 72: 'a', 79: 'e', 81: 'f', 83: 'c', 91: 'd'}
1 查找字典中按value递减排列,前3个value值对应的key:value 2 from collections import Counter 3 from random import randint 4 5 # 随机生成10个[0-20]的int型数值,作为key 6 data = [randint(0,20) for i in range(10)] 7 print(data) 8 #[12, 17, 4, 0, 18, 12, 16, 9, 17, 15] 9 10 # 初始化字典的value值为0 11 c= dict.fromkeys(data, 0) 12 print(c) 13 #{12: 0, 17: 0, 4: 0, 0: 0, 18: 0, 16: 0, 9: 0, 15: 0} 14 15 # 随机生成value 16 c= Counter(data) 17 print(c) 18 #Counter({12: 2, 17: 2, 4: 1, 0: 1, 18: 1, 16: 1, 9: 1, 15: 1}) 19 20 # 根据value值递减排序,取出前三个 21 # 结果类型为列表 22 data = c.most_common(3) 23 print(type(data)) 24 #<class 'list'> 25 print(data) 26 #[(12, 2), (17, 2), (4, 1)]