python字典

本文详细介绍了Python中字典的创建方法(包括空字典、键值对、列表转字典等)、fromkeys函数的应用、字典的修改、插入、删除操作,以及如何判断键的存在、拼接字典和获取键值集合。
摘要由CSDN通过智能技术生成

一、字典的创建方法

创建字典的方法有很多,以下几个比较常见:

# 方法1,创建空字典
dic = {}
dic = dict()

# 方法2
dic = {'sno': '1812', 'name': '小七', 'age': 22}

# 方法3
lst = [('sno', '1812'), ('name', '小七'), ('age', 22)]
dic2 = dict(lst)

# 方法4
dic3 = dict( sno = '1812', name = '小七', age = 22 )

# 方法5
lst1 = ['sno', 'name', 'age']
lst2 = ['1812', '小七', 22]
dic4 = dict(zip(lit1, lit2))

#zip()方法,将2个可迭代对象,一一对应(以最短的为准)后打包成元组

需要注意的是:

1、当键值为字符串时,除了使用“=”号表示“键值对”时,键名称不需要加引号,其它任何情况下,都需要加引号

2、当键为数字时,不能使用“=”号表示键值对,只能用“:”

二、使用fromkeys()方法,初始化字典

'''
 使用fromkeys(seq[,value])初始化字典

参数
seq – 字典键值列表
value – 可选参数, 设置键序列(seq)的值,未设置则为None

注意:
seq可以是任意可迭代对象,若有重复,则只保留1个
value为【可变数据类型】时,修改其中任一数据,则所有的值都会受到影响。
'''

d1 = {}.fromkeys(['sno','name','age'])
# 创建了1个含sno,name,age3个键,值都是None的字典

d1 = {}.fromkeys(['sno','name','age'],'unknown')
# 创建了1个含sno,name,age3个键,值都是unknown的字典

# 当value为可选数据类型时,
# 因为所有键的值都是对同一
# 内存地址的引用,所以修改
# 任意1个,所有键的值都会变
d1 = {}.fromkeys(['sno','name','age'],['18321','小红',22])
print(d1,'\n','-'*30)

# 返回:
# {'sno': ['18321', '小红', 22], 'name': ['18321', '小红', 22], 'age': ['18321', '小红', 22]}

d1['sno'][0] = '111'
print(d1,'\n','-'*30)
# 返回:
# {'sno': ['111', '小红', 22], 'name': ['111', '小红', 22], 'age': ['111', '小红', 22]}

三、修改/插入字典元素

d = {}
d.update({'sno': '18002', 'name': '小七', 'sex': '男'})
print(d)  # 返回:{'sno': '18002', 'name': '小七', 'sex': '男'}
# 也可以用另一个字典作为参数
d1 = {}
d1.update(d)
print(d1)
# 返回:{'sno': '18002', 'name': '小七', 'sex': '男'}
# 这里很奇怪,使用d1 = {}.update(d)
# 可以运行,但d1却没有被更新,打印出来值是None

四、删除字典元素

# 方法1
del d['name'] #删除键为name的值

# 方法2
d.pop(key[,default])
# 如果找到对应的key,则返回删除的值,否则返回default参数的值 

五、判断字典中是否存在键

# 方法1:成员关系运算符 in
if item in items

# 方法2:get()方法
d.get(key, default = None)

# 获取键为key的值,再返回
# 如果没有找到对应的键,则返回default参数的值

六、拼接2个字典

# 方法1
dMerge = dict(d1,**d2)

# 方法2
dMerge = d1.copy()
dMerge.update(d2)

七、获取字典中键/值的集合

d.keys()
d.values()
# 返回一个dict_keys或dict_values对象

#使用中,将其转换为列表的方法:

# 方法1
ls = [*d]

# 方法2
list(d.keys())

# 方法3
ls = []
for k in d.keys(): 
    ls.append(k)

八、返回字典中的键值对

d.items()

for key,item in d.items():
    print(key,item)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值