-
创建字典(字典键值唯一)
# 1 创建一个空字典再赋值
a = {} # 或者 a=dict()
a['two'] = 2
a['one'] = 1
a['three'] = 3
# 2传入可迭代对象
b = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
c = dict([('two', 2), ('one', 1), ('three', 3)])
# 3 直接字典赋值
d = dict(one=1, two=2, three=3)
e = {"one": 1, "two": 2, "three": 3}
f = dict({'three': 3, 'one': 1, 'two': 2})
print(a == b == c == d == e == f)
# res:True
字典推导式生成
# 字典推导式
dial_dodes = [(86, 'china'),
(91, 'India'),
(1, 'United States'),
(62, 'Indonesia'),
(55, 'Brazil'),
(92, 'Pakistan'),
(880, 'Bangladesh'),
(234, 'Nigeria'),
(7, 'Russia'),
(81, 'Japan'),
]
country_code = {country: code for code, country in dial_dodes}
print(country_code)
#字典推导式交换key-value
exchange={code:country for country,code in country_code.items()}
print(exchange)
#res:
{'china': 86, 'India': 91, 'United States': 1, 'Indonesia': 62, 'Brazil': 55, 'Pakistan': 92, 'Bangladesh': 880, 'Nigeria': 234, 'Russia': 7, 'Japan': 81}
{86: 'china', 91: 'India', 1: 'United States', 62: 'Indonesia', 55: 'Brazil', 92: 'Pakistan', 880: 'Bangladesh', 234: 'Nigeria', 7: 'Russia', 81: 'Japan'}
-
访问字典
-
dic1 = dict(one=1, two=2, three=3) dic2 = dict(china=96, India=91, US=1) dic1.update(dic2) # print(dic1) print(dic1.get('one')) print(dic1.get('onee')) print(dic1['onee']) # True # None # TypeError: 'builtin_function_or_method' object is not subscriptable
访问字典时,采取dict.get(key) 的方法,如果键不存在返回none不报错
-
print('one' in dic1)
-
修改字典
a['one']=1000
-
删除字典
# 删除字典
del country_code['Japan'] # 删除键 'Name'
print(country_code)
country_code.clear() # 清空字典
del country_code # 删除字典
print(country_code)
#res
{'china': 86, 'India': 91, 'United States': 1, 'Indonesia': 62, 'Brazil': 55, 'Pakistan': 92, 'Bangladesh': 880, 'Nigeria': 234, 'Russia': 7}
{}
-
更新字典,多个字典合并成一个字典
# 更新字典,两个字典叠加
dic1 = dict(one=1, two=2, three=3)
dic2 = dict(china=96, India=91, US=1)
dic1.update(dic2) #注意合并之后存在dic1
print(dic1) #
#res
{'one': 1, 'two': 2, 'three': 3, 'china': 96, 'India': 91, 'US': 1}
-
字典内置方法
- dic.get()和dic.setdefault()的区别
-
res1=dic1.setdefault('onee', 123) print(res1) print(dic1) res2=dic1.get('twoo',222) print(res2) print(dic1)
区别:dic.setdefault()如果不存在得到并更新默认值 dic.get()得到默认值,不更新字典
- dic.pop()和dic.popitem(key[,default])
-
其他
- 访问字典中的键、值和键值对
dic1 = dict(one=1, two=2, three=3)
dic2 = dict(china=96, India=91, US=1)
dic1.update(dic2)
dic1.keys()
dic1.values()
dic1.items()
- dict.fromkeys(seq[,value])
- 创建一个新字典,以序列seq为对应的键,value 为每个键的默认值
-
ss=list('abcd') nn=list('1234') new=dict.fromkeys(ss,nn) print(new) new2=dict.fromkeys(ss) print(new2) new3=dict.fromkeys(ss,100) print(new3) # res # # {'a': ['1', '2', '3', '4'], 'b': ['1', '2', '3', '4'], 'c': ['1', '2', '3', '4'], 'd': ['1', '2', '3', '4']} # {'a': None, 'b': None, 'c': None, 'd': None} # {'a': 100, 'b': 100, 'c': 100, 'd': 100}