赞
踩
目录
三.dict中获取所有的key,获取所有的value,获取所有的item
只拷贝了父目录(根目录)的数据,非容器类型数据本身拷贝的就是数据本身,容器类型(列表,元组,集合,字典)的数据拷贝的是容器的地址引用
dict_data1和dict_data2两者是独立的,但是里面的元素指向同一个,所以一个改变后,另一个也会随之而变
图解:
- dict_data = {1: [1, 2, 3]}
- dict_data2 = dict_data.copy()
- print(dict_data2)
- print(id(dict_data[1]))
- print(id(dict_data2[1]))
- print(id(dict_data))
- print(id(dict_data2))
- dict_data[1][1] = 8
- print(dict_data)
- print(dict_data2)
- 结果
- {1: [1, 2, 3]}
- 2501838676224
- 2501838676224
- 2501837218560
- 2501837218752
- {1: [1, 8, 3]}
- {1: [1, 8, 3]}
递归拷贝所有目录的数据,完全在另外内存中复制了一份原字典
图解:
- list_data = [1, [2, 3]]
- list_data2 = copy.deepcopy(list_data)
- print(list_data2)
- print(id(list_data))
- print(id(list_data2))
- print(id(list_data2[0]))
- print(id(list_data2[0]))
- print(id(list_data[1]))
- print(id(list_data2[1]))
- list_data[1][0] = 8
- print(list_data)
- print(list_data2)
- 结果
- [1, [8, 3]]
- 1999515586368
- 1999515586112
- 1999508957488
- 1999508957488
- 1999515593024
- 1999515591232
- [1, [8, 3]]
- [1, [2, 3]]
- dict_data = {1: 2, 2: 3}
- dict_data[3] = 4
- print(dict_data)
- 结果
- {1: 2, 2: 3, 3: 4}
- dict_data = {1: 1, 2: 2, 3: 4}
- dict_data.setdefault(4, 5)
- print(dict_data)
- 结果
- {1: 1, 2: 2, 3: 4, 4: 5}
- dict_data = {1: 1, 2: 2, 3: 4}
- dict_data1 = {5: 6}
- dict_data.update(dict_data1)
- print(dict_data)
- 结果
- {1: 1, 2: 2, 3: 4, 5: 6}
- dict_data = {1: 2, 2: 3, 3: 4}
- data = dict_data.keys()
- print(data)
- 结果
- dict_keys([1, 2, 3])
- dict_data = {1: 1, 2: 2, 3: 4}
- data = dict_data.values()
- print(dict_data, data)
- 结果
- {1: 1, 2: 2, 3: 4} dict_values([1, 2, 4])
- dict_data = {1: 1, 2: 2, 3: 3}
- data = dict_data.items()
- print(data)
- 结果
- dict_items([(1, 1), (2, 2), (3, 3)])
# 如果键不在字典中,则插入值为默认值的键。
- dict_data = {1: 1, 2: 2, 3: 4}
- data = dict_data.setdefault(4)
- print(data)
- 结果
- None
# 如果 key 在字典中,则返回 key 的值,否则返回默认值。
- dict_data = {1: 1, 2: 2}
- data = dict_data.get(3)
- print(data)
- 结果
- None
- data = set()
- print(data, type(data))
- 结果
- set() <class 'set'>
- set_data = {1, 3, 5, 6, 7}
- set_data1 = {1, 2, 3, 5, 6}
- set_data.update(set_data1)
- print(set_data)
- 结果
- {1, 2, 3, 5, 6, 7}
- set_data = {1, 3, 5}
- set_data1 = {1, 2, 3, 4}
- set_data.intersection_update(set_data1)
- print(set_data)
- 结果
- {1, 3}
- set_data = {1, 3, 5, 6, 7}
- set_data1 = {1, 2, 3, 5, 6}
- set_data.symmetric_difference_update(set_data1)
- print(set_data)
- 结果
- {2, 7}
- add(self, *args, **kwargs):
- """
- Add an element to a set.
-
- This has no effect if the element is already present.
- """
将元素添加到集合中
- set_data = {1, 3}
- set_data.add(2)
- print(set_data)
- 结果
- {1, 2, 3}
- pop(self, *args, **kwargs):
- """
- Remove and return an arbitrary set element.
- Raises KeyError if the set is empty.
- """
删除并返回第一个元素
- set_data = {1, 3, 4, 5, 6, 7}
- data = set_data.pop()
- print(data, set_data)
- 结果
- 1 {2, 3, 4, 5, 6, 7}
- remove(self, *args, **kwargs):
- """
- Remove an element from a set; it must be a member.
-
- If the element is not a member, raise a KeyError.
- """
从集合中删除元素
- set_data = {1, 3, 4, 5, 7, 8}
- set_data.remove(1)
- print(set_data)
- 结果
- {3, 4, 5, 7, 8}
- discard(self, *args, **kwargs):
- """
- Remove an element from a set if it is a member.
-
- If the element is not a member, do nothing.
- """
如果元素是成员,则从集合中删除该元素
- set_data = {1, 3, 5}
- set_data.discard(1)
- print(set_data)
- 结果
- {3, 5}
- difference_update(self, *args, **kwargs):
- """ Remove all elements of another set from this set. """
从此集中删除另一组的所有元素。
- set_data = {1, 3, 5}
- set_data1 = {1}
- set_data.difference_update(set_data1)
- print(set_data)
- 结果
- {3, 5}
- clear(self, *args, **kwargs):
- """ Remove all elements from this set. """
从此集中删除所有元素
- set_data = {1, 3}
- set_data.clear()
- print(set_data)
- 结果
- set()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。