Python 字典 使用技巧

发布时间:2024-12-17 00:51

使用数字工具提高工作效率(如Excel、Python) #生活技巧# #工作学习技巧# #数字技能提升#

文章目录 1.遍历字典的3种方式2.字典推导式的使用3.对字典排序

1.遍历字典的3种方式

Python3中:

d = {'x': 1, 'y': 2, 'z': 3} 1

1.遍历keys:

for k in d:print(k)print(d[key]) 123

或者

for k in d.keys():print(k)print(d[key]) 123

2.遍历values:

for v in d.values(): print(v) 12

3.遍历keys,values:

for k,v in d.items(): print(k) print(v) 123

Python2中有所区别,items()、keys()、values()换成iteritems()、iterkeys()、itervalues()。

2.字典推导式的使用

题目要求:
在这里插入图片描述
可以看出,键是从1到676,值是26个英文大写字母的组合。
我们首先要做的是找到字母组合的方法,首先想到的应该是利用chr()函数得到整型对应的字符,范围是65-90,进而可以用得到两个字符的组合,如下:

lis = [chr(j) + chr(i) for j in range(65,91) for i in range(65,91)] print(lis) 12

打印:

['AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', ... 'ZK', 'ZL', 'ZM', 'ZN', 'ZO', 'ZP', 'ZQ', 'ZR', 'ZS', 'ZT', 'ZU', 'ZV', 'ZW', 'ZX', 'ZY', 'ZZ']

123456789101112131415161718192021222324252627282930

现在再使用字典推导式和enumerate()函数即可得到所需结果,如下:

result = {k + 1:s for k,s in enumerate([chr(j) + chr(i) for j in range(65,91) for i in range(65,91)])} print(reslut) 12

打印:

{1: 'AA', 2: 'AB', 3: 'AC', 4: 'AD', 5: 'AE', 6: 'AF', 7: 'AG', 8: 'AH', 9: 'AI', 10: 'AJ', 11: 'AK', 12: 'AL', 13: 'AM', 14: 'AN', 15: 'AO', 16: 'AP', 17: 'AQ', 18: 'AR', 19: 'AS', 20: 'AT', 21: 'AU', 22: 'AV', 23: 'AW', 24: 'AX', 25: 'AY', 26: 'AZ', 27: 'BA', 28: 'BB', 29: 'BC', 30: 'BD', 31: 'BE', 32: 'BF', 33: 'BG', 34: 'BH', 35: 'BI', 36: 'BJ', 37: 'BK', 38: 'BL', 39: 'BM', 40: 'BN', 41: 'BO', ... 662: 'ZL', 663: 'ZM', 664: 'ZN', 665: 'ZO', 666: 'ZP', 667: 'ZQ', 668: 'ZR', 669: 'ZS', 670: 'ZT', 671: 'ZU', 672: 'ZV', 673: 'ZW', 674: 'ZX', 675: 'ZY', 676: 'ZZ'}

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

除此之外,得到26个大写字母的方式还有其他方式,如使用string模块,用string.ascii_uppercase得到26个英文字母,再进行拼接,如下:

import string {k + 1:s for k,s in enumerate([i + j for i in string.ascii_uppercase for j in string.ascii_uppercase])} 12

与前者效果是相同的。

3.对字典排序

对字典排序有2种情况:按照键排序和按照值排序,最简单易行的方式都是通过lambda表达式实现。
按照键排序示例如下:

unsorted_dict = {'cl11': 2, 'cl101': 101, 'cl2': 3, 'cl1': 4, 'cl10': 1} sorted_dict = {k: v for k, v in sorted(unsorted_dict.items(), key=lambda x: x[0])} print(sorted_dict) 1234

打印:

{'cl1': 4, 'cl10': 1, 'cl101': 101, 'cl11': 2, 'cl2': 3} 12

显然,用到了字典推导式。

按照值排序示例如下:

def sort_by_value(unsorted_dict): sorted_items = sorted(unsorted_dict.items(), key=lambda x: x[1]) sorted_dict = {k: v for k, v in sorted_items} return sorted_dict unsorted_dict = {'cl11': 2, 'cl101': 101, 'cl2': 3, 'cl1': 4, 'cl10': 1} sorted_dict = sort_by_value(unsorted_dict) print(sorted_dict) 12345678910

打印:

{'cl10': 1, 'cl11': 2, 'cl2': 3, 'cl1': 4, 'cl101': 101} 12

显然,对字典根据值进行了排序;
并将实现部分抽离到函数中,优化了代码结构。

网址:Python 字典 使用技巧 https://www.yuejiaxmz.com/news/view/492659

相关内容

7个Python内存优化技巧,你用过几个?
python查询数据库返回字典
3 个节省时间的 Python 技巧!
3 个节省时间的 Python 技巧
python中一些提升工作效率的小技巧
大神进阶之路:Python技巧小贴士
Python实现经典还钱问题算法:优化财务管理的编程技巧
Python列表嵌套字典转化问题
python 列表转为字典的两个小方法
python鲜为人知的小技巧

随便看看