Python-基础知识学习之字典(dict)

字典是拥有灵活尺寸的键值对集合,键和值都是一个对象,每个键值对用逗号隔开,所有的键值对使用大括号括起来:

adict = {} #定义一个空字典

bdict = {'a': 'hello world', 'b': [1, 2, 3]}

print(bdict)
#打印
    {'a': 'hello world', 'b': [1, 2, 3]}

#插入一个新的键值对
bdict['c'] = 'happy day'
print(bdict)
#打印
    {'a': 'hello world', 'b': [1, 2, 3], 'c': 'happy day'}

#通过键访问数据
print(bdict['a'])
#打印
    'hello world'

#判断一个键是否存在于字典中
bln = 'b' in bdict
print(bln)
#打印
    True

#使用del或者pop方法删除值,pop方法会在删除的同时返回被删的值,并删除键
del bdict['c']
print(bdict)
#打印
    {'a': 'hello world', 'b': [1, 2, 3]}

ret = bdict.pop(b)
print(ret, bdict)
#打印
    [1, 2, 3] {'a': 'hello world'}


#字典的keys和values方法返回字典的键和值的迭代器,另外要注意,键值没有特定的顺序
print(list(blist.keys())
#打印
    ['a']

print(list(blist.values())
#打印
    ['hello world']


#字典的update方法可以将两个字典合并:
adict = {'b': 'bar', 'c': 22}
bdict.update(adict)
print(bdict)
#打印
    {'a': 'hello world', 'b': 'bar', 'c': 22}

#update改变了字典中元素位置,如果在原字典中存在的键,如果传递给update方法的数据也有相同的键,那么就会替换掉原来的值

字典的get和pop方法,都有带有一个默认值,可以这样获取:

value = adict.get(key, default_value)

生成一个有默认值的字典,有个方便的方法:

from collections import defaultdict #导入默认字典模块

adict = defaultdict(list)
for word in words:
    adict[word[0]].append(word)

字典的键(key)必须是一个固定无法变更的,所以不能是数组,可以是标量(整数、浮点数、字符串)或者元组(元组中的对象不能变化)。想知道哪些可以作为字典的键,我们可以通过判断它是否可以哈希化,通过hash函数就可以检查:

print(hash('string'))
#打印
    5023931463650008331

print(hash((1, 2, (3 ,4)))
#打印
    1097636502276347782

print(hash((1, 2, [3, 4])) #会报错,里面包含了可变的数组,因此是不能哈希化的
#打印
    TypeError

猜你喜欢

转载自blog.csdn.net/pz789as/article/details/93758915
今日推荐