Python 字典 使用技巧

简介: 代码如下

1.遍历字典的3种方式

Python3中:

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

1.遍历keys:

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

或者

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

2.遍历values:

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

3.遍历keys,values:

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

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

2.字典推导式的使用

题目要求:

2345_image_file_copy_71.jpg

可以看出,键是从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])}

与前者效果是相同的。

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)

打印:

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

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

按照值排序示例如下:

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)

打印:

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

显然,对字典根据值进行了排序;

并将实现部分抽离到函数中,优化了代码结构。

相关文章
|
18天前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
11 1
|
3月前
|
存储 JSON 索引
一文让你彻底搞懂 Python 字典是怎么实现的
一文让你彻底搞懂 Python 字典是怎么实现的
61 13
|
3月前
|
存储 数据安全/隐私保护 Python
Python常用数据结构——字典的应用
Python常用数据结构——字典的应用
42 2
|
3月前
|
关系型数据库 MySQL 数据库
Python MySQL查询返回字典类型数据的方法
通过使用 `mysql-connector-python`库并选择 `MySQLCursorDict`作为游标类型,您可以轻松地将MySQL查询结果以字典类型返回。这种方式提高了代码的可读性,使得数据操作更加直观和方便。上述步骤和示例代码展示了如何实现这一功能,希望对您的项目开发有所帮助。
157 4
|
3月前
|
Python
Python 字典删除下标前两个
Python 字典删除下标前两个
21 1
|
2月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
39 0
|
2月前
|
存储 自然语言处理 数据库
Python字典操作实现文章敏感词检索
Python字典操作实现文章敏感词检索
32 0
|
2月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
32 0
|
2月前
|
存储 Java Serverless
【Python】字典
【Python】字典
34 0
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
23 0