Python 字典 使用技巧

1.字典推导式的使用

题目要求:
在这里插入图片描述
可以看出,键十从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)

打印:

['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']

现在再使用字典推导式和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)

打印:

{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'}        

除此之外,得到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])}

与前者效果是相同的。

发布了114 篇原创文章 · 获赞 1152 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/CUFEECR/article/details/104928665