基础数据类型(三)——字典常见操作

# 字典
# 字典的value可以是任何值
# 字典的key为不可变类型,例如整型、字符串、元组均可(因为字典是以hash方式存储在内存中;吧key的hash值存在内存中,value直接存储
# 若字典的key值相同,只保留一个value值
# 字典是无序的,只能通过key值获取value
di = {'name':'lwj', 'age':19}
di_2 = {
    'k1':'v1',
    'k2':'v2',
    1:'v3',
    ('a', 'b',):8,
    'k5':[
        'a1',
        'a2',
        {
            'kk1':'a11',
            'kk2':9,
            'kk3':(1, 2, 'a', 'b',)
        }
    ]
}

# 获取kk2的值9
print(di_2['k5'][2]['kk2'])

# 字典循环,默认使用的是字典的key值
for k in di.keys():
    print(k)
    print('获取key值')
for k in di:
    print(k)
    print('默认是key值')

for v in di.values():
    print(v)
    print('获取value值')

for k, v in di.items():
    print(k, v)
    print('获取key:value值')


# 根据序列创建字典,可设置字典的value值
d = dict.fromkeys(['k1', 'k2', 'abc'],123)
print(d) #结果为{'k1': 123, 'k2': 123, 'abc': 123}

print(dict.fromkeys('abcd', 123)) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123}

# 获取可设置默认value值的字典key
v = d.get('k1')
print(v) #此时k1是存在的,这样或获取123结果
v1 = d.get('k3')
print(v1) #此时k3是不存在,这样获取的value值为None
v2 = d.get('k3','abcd')
print(v2) #此时k3是不存在,这样获取的value值为默认值'abcd'


d = {'a': 123, 'b': 123, 'c': 123, 'd': 123}
m = d.pop('a') # 这样会删除key对应的value→123
print(d, m) #得到结果{'b': 123, 'c': 123, 'd': 123} 123

# 若删除的键值不存在,删除key值之后可以设置默认的返回值
d = {'a': 123, 'b': 123, 'c': 123, 'd': 123}
m = d.pop('e','abcd') #此时删除的'e'不存在,无法删除,但是可以返回默认的value值为'abcd'
print(d, m) #结果为

# popitem() #随机删除字典的key以及对应的value值,可直接获取删除的内容
d = {'a': 123, 'b': 123, 'c': 123, 'd': 123}
k,v = d.popitem()
print(d, k, v)


# setdefault('e', 1234) # 设置key对应的值,如果key不存在则加入到字典中,若存在,则获取key当前的value值
d = {'a': 123, 'b': 123, 'c': 123, 'd': 123}
v = d.setdefault('e', 1234)
print(d, v) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123, 'e': 1234} 1234
v = d.setdefault('a', 1234)
print(d, v) #结果为{'a': 123, 'b': 123, 'c': 123, 'd': 123, 'e': 1234} 123


# update() #字典的两种更新方法
d = {'a': 123, 'b': 123, 'c': 123, 'd': 123}
d.update(a='abc', e='eee')
d.update({'b':222, 'f':'fff'})
原文地址:https://www.cnblogs.com/wjlv/p/10816736.html