一 字典{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

posted on 2018-08-15 13:35  voldermorter  阅读(111)  评论(0)    收藏  举报