No results found

【Python 3 基础】字典dict创建方法及常用操作

本文主要介绍Ptyhon 3中字典创建方法,以及字典排序,合并等常用操作。

创建字典方法

{} 方式

1
2
dict1 = {} #创建空字典
dict2 = {'a':11,'b':12} #创建含有值得字典

dict()函数 方式

1
2
3
4
5
6
7
8
dict3 = dict() #创建空字典
dict4 = dict(a='11',b='ddd',c='ssss') #创建含有值的字典,注意键值如果加引号会报错
#dict5 = dict('a'='11',b='ddd',c='ssss') # SyntaxError: keyword can't be an expression
keys = ['a','b','c','d','e']
values = [1,2,3,4]
dict6 = dict(zip(keys,values)) #键或值的列表元素个数不必相同,以少的为准
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}

字典排序

1
2
import operator
test = {'a':1,'c':2,'b':7,'f':5}

根据键排序

sorted() 方式
1
2
print(sorted(test.items())) #升序
print(sorted(test.items(),reverse=True)) #降序
sorted + operator 方式
1
2
print(sorted(test.items(),key=operator.itemgetter(0))) #升序
print(sorted(test.items(),key=operator.itemgetter(0),reverse=True)) #降序
sorted + lambda 方式
1
2
print(sorted(test.items(),key=lambda x : x[0])) #升序
print(sorted(test.items(),key=lambda x : x[0],reverse=True)) #降序

根据值排序

sorted + operator 方式
1
2
print(sorted(test.items(),key=operator.itemgetter(1))) #升序
print(sorted(test.items(),key=operator.itemgetter(1),reverse=True)) #降序
sorted + lambda 方式
1
2
print(sorted(test.items(),key=lambda x : x[1])) #升序
print(sorted(test.items(),key=lambda x : x[1],reverse=True)) #降序

注意,如果值的数据类型不一样,以上根据值排序会报错,例如一下字典,值有int和str类型,lambda中要进行类型转换

1
2
3
test2 = {'a':1,'c':2,'b':7,'f':'5'}
print(sorted(test2.items(),key=lambda x : str(x[1]))) #升序
#输出 [('a', 1), ('c', 2), ('f', '5'), ('b', 7)]

字典合并

update方法

1
2
3
4
dictA = {'a':3,'b':7,'c':'2'}
dictB = {'d':12,'f':'44'}
dictA.update(dictB)
print(dictA) #输出 {'a': 3, 'b': 7, 'c': '2', 'd': 12, 'f': '44'}

**方法

高版本python中可用

1
2
dictC = {**dictA,**dictB}
print(dictC) #输出 {'a': 3, 'b': 7, 'c': '2', 'd': 12, 'f': '44'}

文章目录
  1. 1. 创建字典方法
    1. 1.1. {} 方式
    2. 1.2. dict()函数 方式
  2. 2. 字典排序
    1. 2.1. 根据键排序
      1. 2.1.1. sorted() 方式
      2. 2.1.2. sorted + operator 方式
      3. 2.1.3. sorted + lambda 方式
    2. 2.2. 根据值排序
      1. 2.2.1. sorted + operator 方式
      2. 2.2.2. sorted + lambda 方式
  3. 3. 字典合并
    1. 3.1. update方法
    2. 3.2. **方法
|