python中字典(dict)的常用操作

本文详细介绍了Python中字典的基本操作,包括创建、访问、添加、修改和删除字典元素的方法,以及如何遍历字典等内容。此外还讨论了字典的一些特性,如键的唯一性和不可变性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中字典(dict)的常用操作

# 字典创建
dict1 = {'Alice': '2341', 'Bech': 9102, 'Cecll': '3258'}
dict2 = {'abc': 456}
dict3 = {'abc': 123, 98.6: 37}
# 访问并输出字典中某一个键值
print dict1['Bech']
print dict3[98.6]

# 以列表形式返回字典中所有的键或键值
print dict1.keys()
print dict1.values()
9102
37
['Bech', 'Cecll', 'Alice']
[9102, '3258', '2341']
# 输出字典元素个数(长度)
print len(dict1)
# 返回变量类型(字典)
type(dict1)
3
dict
# 字典内容的添加和修改
dict1['Meringue'] =9999
dict1['Alice'] = 666
print dict1
{'Bech': 9102, 'Cecll': '3258', 'Alice': 666, 'Meringue': 9999}
# 返回指定键的值,若不存在,返回指定的默认值
print dict1.get('Alice','None')
print dict1.get('Jack','None')

# 查看字典中是否存在指定值,返回True或False
print dict1.has_key('Alice')
print dict1.has_key('Jack')

# 功能和get类似,但如果不存在指定键,则会添加该键并赋指定的初始值
dict1.setdefault('Alice','None')
print dict1
dict1.setdefault('Jack','None')
print dict1
666
None
True
False
{'Bech': 9102, 'Cecll': '3258', 'Alice': 666, 'Meringue': 9999}
{'Bech': 9102, 'Cecll': '3258', 'Alice': 666, 'Meringue': 9999, 'Jack': 'None'}
# 删除字典中某一个元素
del dict1['Cecll']
print dict1

# 清空整个字典(字典变为空字典)
dict3.clear()
print dict3

# 删除字典(字典不再存在)
del dict2
print dict2 # 此时会报错
{'Bech': 9102, 'Alice': 666, 'Meringue': 9999, 'Jack': 'None'}
{}

--------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-6-0c120f18cfe4> in <module>()
      9 # 删除字典(字典不再存在)
     10 del dict2
---> 11 print dict2 # 此时会报错


NameError: name 'dict2' is not defined
# 字典中键名不能重复,否则会覆盖
dict4= {'a':1,'b':2,'c':3,'a':4}
print dict4
{'a': 4, 'c': 3, 'b': 2}
# 字典的键不可变,可以为数字,字符或元祖,但不能用列表
dict5 = {['a']:1, 'b':2, 'c':3}
print dict5 # 此时会报错
--------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-8-cbdf7e62504e> in <module>()
      1 # 字典的键不可变,可以为数字,字符或元祖,但不能用列表
----> 2 dict5 = {['a']:1, 'b':2, 'c':3}
      3 print dict5 # 此时会报错


TypeError: unhashable type: 'list'
# 比较两个字典是否相同,相同返回0,不同返回-1
dict6 ={'a':1, 'b':2};
dict7 ={'a':1,'b':2}
dict8 = {'a':1, 'b':3}
print cmp(dict6,dict7)
print cmp(dict6,dict8)
0
-1
# 将dict10中所有键和键值添加到dict9中
dict9 = {'a':1, 'b':2}
dict10 = {'c':3, 'd':4}
dict9.update(dict10)
print dict9
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
# 字典遍历
dict11 = {'a':1, 'b':2, 'c':3, 'd':4}

# 常规方法
for key in dict11:
    print (key,dict11[key])

print '----------------------' 


# 迭代器方法 (注意下面三种输出的不同)
for key, value in dict11.items():
    print key,value # 依次输出建和键值


for key, value in dict11.items():
    print (key,value) # 元祖


for key_value in dict11.items():
    print key_value, type(key_value) # 元祖(与上一个方法等价)
('a', 1)
('c', 3)
('b', 2)
('d', 4)
----------------------
a 1
c 3
b 2
d 4
('a', 1)
('c', 3)
('b', 2)
('d', 4)
('a', 1) <type 'tuple'>
('c', 3) <type 'tuple'>
('b', 2) <type 'tuple'>
('d', 4) <type 'tuple'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值