五分钟快速掌握Python中dict(字典)的详细使用方法

目录

概念:

dict的定义格式:

dict的使用方法:

定义空字典的两种方法:

dict.clear:

 copy:

copy:浅拷贝

deepcopy:深拷贝

get:

 items:

 keys:

 popitem:

 setdefault:

 update:

 values:


概念:

dict----dictionary  字典:

根据关键字去获取内容

关键字不能重复

关键字必须是不可变的数据类型

dict的定义格式:

定义字典:根据key去取value

字典中的元素必须具备两个部分:key和value

{元素1, 元素2, 元素3., .......}:可以有多个元素,元素之间也是用逗号来分隔

元素分解:key 和 value

  写法:key: value

dict的使用方法:

定义空字典的两种方法:

dict_data = {}
dict_data1 = dict()
print(dict_data, dict_data1)

dict.clear:

clear(...)
     D.clear() -> None.  Remove all items from D.

清空操作:移除原列表中的所有元素;

案例:定义一个字典,并且移除他其中的所有元素

dict_data = {1: 1, 1.1: 1.1, 1 + 2j: 1 + 2j}
dict_data.clear()
print(dict_data)

实验结果为:

 copy:

copy:浅拷贝

 copy(...)
     D.copy() -> a shallow copy of D

deepcopy:深拷贝

使用它前需要先导入深拷贝库:from copy import deepcopy

两者区别:

 总结:浅拷贝只复制某个对象的引用,而不复制对象本身,新旧对象还是共享同一块内存。

            深拷贝会创造一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对对象。

案例:

# 导入深拷贝库
from copy import deepcopy
dict_data = {1: [1, 2]}
data1 = dict_data.copy()
print(id(dict_data))
print(id(dict_data[1]))
print(id(dict_data[1][0]))
print(id(dict_data[1][1]))
print(id(data1))
print(id(data1[1]))
print(id(data1[1][0]))
print(id(data1[1][1]))
data2 = deepcopy(dict_data)
print(id(data2))
print(id(data2[1]))
print(id(data2[1][0]))
print(id(data2[1][1]))

运行结果:

get:

 get(self, key, default=None, /)
      Return the value for key if key is in the dictionary, else default.

取值:取key为多少的vlue值

例如:定义一个字典,取出他key值为1的vlue值,返回字典中key的vlue值

dict_data = {1: 2, 1.1: 1.1, 1 + 2j: 1 + 2j}
print(dict_data.get(1))

输出结果:

 items:

items(...)
      D.items() -> a set-like object providing a view on D's items

取元素:取列表中的元素

案例:定义一个字典,取出他列表中的所有元素

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.items())

输出结果:

 keys:

 keys(...)
 |      D.keys() -> a set-like object providing a view on D's keys

取列表中的key值

案例:定义一个字典,取出他列表中所有的key值

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.keys())

输出结果:

 popitem:

popitem(self, /)
 |      Remove and return a (key, value) pair as a 2-tuple.
 |      
 |      Pairs are returned in LIFO (last-in, first-out) order.
 |      Raises KeyError if the dict is empty.
随机返回并删除字典中的一对键和值,若字典为空字典,则返回keyerror

案例:定义一个字典,并随机删除其中一对键和值

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.popitem())
print(dict_data)

输出结果:

 setdefault:

setdefault(self, key, default=None, /)
 |      Insert key with a value of default if key is not in the dictionary.
 |      
 |      Return the value for key if key is in the dictionary, else default.

设置默认值:若字典中没有该key值,在原字典中则插入key,默认value值为None。

                      若字典中存在key值,则返回它的value值

案例:定义一个字典,并插入一个key为9的元素,且输出key为1的value值

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
dict_data.setdefault(9)
print(dict_data)
print(dict_data.setdefault(1))

输出结果:

 update:

 update(...)
 |      D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
 |      If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
 |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
 |      In either case, this is followed by: for k in F:  D[k] = F[k]

更新:在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的键值对,则该键值对被添加进去。

案例:定义一个字典,并更新key为1的值,且增加一个新的键值对

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
dict_data.update({1: 4, 9: 10})
print(dict_data)

输出结果:

 values:

values(...)
 |      D.values() -> an object providing a view on D's values

取该字典中的值

案例:定义一个字典,取出他中所有的value值

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.values())

输出结果:

扩展内容:

1.用for循环去获取dict的key,value,(key,value)以及key和value

dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
for key, value in dict_data.items():
    print(key, value, (key, value))
for i in dict_data.keys():
    print(i)
for j in dict_data.values():
    print(j)
    

输出结果:

 2.使用for循环去获取列表的下标及下标的对应的值

list_data = [1, 'HELLO', 2.2]
for index, value in enumerate(list_data):
    print(index, value)

输出结果:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值