Python 字典dict相关知识
- 字典是无序的,多次print输出的结果不一样。
- 字典的key可以是数字、字符串、元组、布尔值(True为1,False为0,不可以和其他key值重复);列表和字典不能作为key。
- 字典的value可以是任何类型。
- 字典支持del方法删除。
- 字典支持for循环,是可迭代对象,不支持while循环。
- 输出字典所有的key:
for item in info.keys(): print(item)
- 输出字典所有的值:
for item in info.values(): print(item)
- 输出字典所有的键值对:
for k, v in info.items(): print(k, v)
- info.clear( ) | 清空字典
- info.copy( ) |浅拷贝
- dict.fromkeys( *args, **kwargs ) |这是一种静态方法@staticmethod。根据序列创建字典,并给其指定统一值。 像此类静态方法调用时,用类名.方法名就可以。
前面带两个*时,表示这里可以用name=“…”的形式穿入参数,也可以直接传入字典。
>>> new_dict = dict.fromkeys(['k1',123,'999'],123) >>> print(new_dict) {'k1': 123, 123: 123, '999': 123}
- info.get( ) |get能直接根据索引号来获取该索引号对应的值,和直接用info['k1']不同的是,当输入的索引号不存在时,info['K1']会报错,但是get会输出None,并且可以设置当索引号不存在时应该输出的默认值。
>>> info = {'K1':123,'k2':890} >>> v = info.get('k1111',222) >>> print (v) 222
- info.pop( ) |删除值并且得到删掉的值。
>>> info = {'K1':123,'k2':890} >>> v = info.pop('K1') >>> print (info, v) ({'k2': 890}, 123)
- info.popitem( ) |此方法不带参数,是指随即删除字典里的一个键值对,并获取删掉的键值对的值。
>>> info = {'K1':123,'k2':890} >>> k, v = info.popitem() >>> print(info, k, v) ({'K1': 123}, 'k2', 890) #随机删掉了K2键值对
- info.setdefault( ) |当setdefault参数中设置的键在字典中存在时,不作修改,并且获得该键在字典中对应的值,当setdefault参数的键在字典中不存在时,则把setdefault设置的键值对添加到字典中,并且获得该键对应的值。
>>> info = {'K1':123,'k2':890} >>> v = info.setdefault('k11111',666) #这是当参数的键在字典中不存在时,结果把参数设置的键值对添加到了字典中,并且返回了该键对应的值。 >>> print(info, v) ({'k2': 890, 'K1': 123, 'k11111': 666}, 666)
- info.update( ) |更新字典的内容,对原来存在的键覆盖其值,对原来不存在的键值对添加到字典中。
>>> info = {'k1':123,'k2':890} >>> info.update({'k1': 11111,'k3':'hdjkdl'}) #这里参数传入的是一个字典 >>> print(info) {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
>>> info = {'k1':123,'k2':890} >>> info.update(k1=11111,k3='hdjkdl') #或者也可以以这种方式传入参数和值 >>> print(info) {'k3': 'hdjkdl', 'k2': 890, 'k1': 11111}
- 字典默认for循环时,循环的是key值,不是value
>>> dic = {'k1':'v1'} >>> 'k1' in dic #键是True True
>>> dic = {'k1':'v1'} >>> 'v1' in dic #值是False False
- 布尔值
转换为布尔值:bool( )
布尔值为False的类型: None, " ", ( ), { }, 0 ,其他都为真