Python自学笔记11——字典(方法)

1 、clear 清除方法 

value1 = {'t': 'T', 'a': 'A', 'b': 'B'}
value1.clear()
print(value1)

输出:{}

2、copy方法、deepdeepy函数

copy方法复制的字典只是浅复制,只复制第1层字典数据,第2层及以下的说有数据层,原字典与新字典指向同一个值。

value1 = {'t': 'T', 'a': 'A', 'b': ['B', 'Q']}
# 复制生成一个value2
value2 = value1.copy()
# 输出v1和v2的值对比
print(value1)  # {'t': 'T', 'a': 'A', 'b': ['B', 'Q']}
print(value2)  # {'t': 'T', 'a': 'A', 'b': ['B', 'Q']}
# 修改v1中的1层值 然后输出对比
value1['t'] = 'W'
print(value1)  # {'t': 'W', 'a': 'A', 'b': ['B', 'Q']}
print(value2)  # {'t': 'T', 'a': 'A', 'b': ['B', 'Q']}
# 修改v1中2层值,输出对比
value1['b'][1] = 'K'
print(value1) # {'t': 'W', 'a': 'A', 'b': ['B', 'K']}
print(value2) # {'t': 'T', 'a': 'A', 'b': ['B', 'K']}

从对比看copy后的数据第一次层 修改不影响另一个数 't': 'W',而第二层开始,就该就会影响到另一个变量的相应值。如'b': ['B', 'K']

如果涉及到2层以上的修改,就用到了deepcopy 函数

from copy import deepcopy
value1 = {'t': 'T', 'a': 'A', 'b': ['B', 'Q']}
value2 = deepcopy(value1)
value1['b'][1] = 'k'
print(value1)
print(value2)

>>>{'t': 'T', 'a': 'A', 'b': ['B', 'k']}
>>>{'t': 'T', 'a': 'A', 'b': ['B', 'Q']}

3、fromkeys方法根据Key建立新字典

# 建一个有key,value为空的字典
v1 = {}.fromkeys(['a', 'b', 'c'])
v2 = v1.fromkeys(['d', 'e', 'f'])
v3 = v1.fromkeys(['a', 'b', 'c'], '固定值')
print(v1)
print(v2)
print(v3)


>>>{'a': None, 'b': None, 'c': None}
>>>{'d': None, 'e': None, 'f': None}
>>>{'a': '固定值', 'b': '固定值', 'c': '固定值'}

4、get函数 用于根据kye查找value   注:value is None 与value == None 结果一样但是后者格式有错误提醒。

value1 = {'a': 'A', 'b': 'B', 'c': 'C'}
while True :
    word = input("输入Key值:")
    if word == ":exit":
        break
    value = value1.get(word)
    if value is None:
        print("没找到{}的值".format(word))
    else:
        print("{}的大写字母是:{}".format(word, value))

5、pop方法和popitem方法

value1 = {'a': 'A', 'b': 'B', 'c': 'C'}
value1['d'] = 'D'
value1['e'] = 'E'
print(value1)
print(value1.pop('b'))  # 弹出(删除)key下的值,并返回值,这里是B
print(value1)           # 可以看出b及其值已经没有了
for i in range(len(value1)):
    print(value1.popitem())      # 从添加的顺序倒序开始弹出/删除 键值对
print(value1)                  #  都弹出来了成为空字典 { }
>>>>>>
{'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D', 'e': 'E'}
B
{'a': 'A', 'c': 'C', 'd': 'D', 'e': 'E'}
('e', 'E')
('d', 'D')
('c', 'C')
('a', 'A')
{}

6、update 用一个字典中的数更新另一个字典中的数,如果key存在就修改值,如果没有这个key就会增加相应的key

value1 = {'a': 'A', 'b': 'B', 'c': 'C'}
value2 = {'a': 'C', 'e': 'E', 'f': 'F'}
value1.update(value2)
print(value1)

>>>>
{'a': 'C', 'b': 'B', 'c': 'C', 'e': 'E', 'f': 'F'}

7、setdefault(x,y)方法,用于设置key的默认值,第一参数为key 第二个参数为value,如果key不存在就会增加key-value,疾病返回value值,如果kye存在那么value不变直接返回value值。如果没有标注第二个value参数,默认为None

value1 = {'a': 'A'}
print(value1)
print(value1.setdefault('b', 'B'))
print(value1)
print(value1.setdefault('a', 'D'))
print(value1)
print(value1.setdefault("e"))
print(value1)

>>>>
{'a': 'A'}
B
{'a': 'A', 'b': 'B'}
A
{'a': 'A', 'b': 'B'}
None
{'a': 'A', 'b': 'B', 'e': None}

8、values方法,用于返回字典中的值,一般通过迭代 也就for方法输出

value1 = {'a': 'A', 'b': 'B', 'c': 'C'}
print(value1.values())
for i in value1.values():
    print(i)


>>>>
dict_values(['A', 'B', 'C'])
A
B
C

 

 

 

你可能感兴趣的:(Python,字典,方法,函数)