一 字典{dictionary}:基于hash散列算法实现。非常快的查取插入速度,无序。不定长、可变、无序、散列的集合类型
key:不可变,唯一
1 创建字典
>>> dic={} >>> dic={'Alice':'2341','Beth':'9102','Cecil':'3258'} >>> dict([('Sape',4139),('guido',4127),('jack',4098)]) {'Sape': 4139, 'guido': 4127, 'jack': 4098} >>> dict(('1':1),('2':2)) File "<stdin>", line 1 dict(('1':1),('2':2)) ^ SyntaxError: invalid syntax >>> dict(('1',1),('2',2)) #只能有一个参数 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: dict expected at most 1 arguments, got 2 >>> dict(sape=4139,guido=4127,jack=4098) {'sape': 4139, 'guido': 4127, 'jack': 4098}
2 增删查改
dic[key]
dic[key]=value
del dic[key]
a=dic.pop(key) #弹出并返回指定的键
dic.clear() #清空字典,空字典
del dic #删除字典本身
3 字典的重要方法
| 方法 | 作用 |
|---|---|
| clear() | 删除字典内所有元素 |
| copy() | 返回一个字典的浅复制 |
| fromkeys() | 创建一个新字典,以序列seq中元素做字典的键 |
| get(key) | 返回指定键的值,如果值不在字典中,则返回default值 |
| items() | 以列表返回可遍历的(键, 值) 元组对 |
| keys() | 以列表返回字典所有的键 |
| values() | 以列表返回字典所有的值 |
| pop(key) | 删除并返回指定key的值 |
| popitem() | 随机删除并返回字典内某个键的值 |
| setdefault(key, default=None) | 和get()类似,但如果键不存在于字典中,将会添加键并将值设为default |
| update(dict2) | 把字典dict2的键/值对更新到dict里 |
>>> dic = {'Name': 'Jack', 'Age': 7, 'Class': 'First'}
>>> dic.get('sex') #访问不存在的key,没有报错,但IDLE不会显示None
>>> dic['sex']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'sex'
>>> dic.items()
dict_items([('Name', 'Jack'), ('Age', 7), ('Class', 'First')])
>>> dic.values()
dict_values(['Jack', 7, 'First'])
>>> dic.keys()
dict_keys(['Name', 'Age', 'Class'])
>>> dic.pop('Name')
'Jack'
>>> dic
{'Age': 7, 'Class': 'First'}
>>> dic.popitem()
('Class', 'First')
>>> dic
{'Age': 7}
4 遍历字典
dic = {'Name': 'Jack', 'Age': 7, 'Class': 'First'}
# 1 直接遍历字典获取键,根据键取值
for key in dic:
print(key, dic[key])
# 2 利用items方法获取键值,速度很慢,少用!
for key,value in dic.items():
print(key,value)
#3 利用keys方法获取键
for key in dic.keys():
print(key, dic[key])
#4 利用values方法获取值,但无法获取对应的键。
for value in dic.values():
print(value)
四 bytes
string = b'xxxxxx'.decode() 直接以默认的utf-8编码解码bytes成string
b = string.encode() 直接以默认的utf-8编码string为bytes
浙公网安备 33010602011771号