Python字典

dicts = {'hello':'world',(1,2,3):899,'李白':[{12:33}]}
print(dicts)

要求
1.键不能是可变的(可变set、list、dict——增删改查)
2.键不可重复(str、tuple、int、float、bool——不可变)

一、字典出现重复的键会怎么样?

dicts = {'李白':'world',(1,2,3):899,'李白':[{12:33}]}
print(dicts)
结果:{'李白': [{12: 33}], (1, 2, 3): 899}   会自动合并,赋最后出现的值

二、字典方法

1.增加

#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['你好'] = '杜甫'
print(dicts)

#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts.update({'你好': '杜甫'})  #实际上放的是另一个字典,实际上是两个字典的合并
print(dicts)    #打印的是这个字典本身,是在原来的字典里面变化的,所以说字典是可变的
结果:
{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}
{'hello': 'world', (1, 2, 3): 98, '李白': [{12: 33}], '你好': '杜甫'}

2.删除(根据字典的键)

#方法一
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
a = dicts.pop('hello')  #弹出的是删除的键所对应的值
print(a,dicts)
#方法二
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
del dicts['hello']
print(dicts)
结果:
world {(1, 2, 3): 98, '李白': [{12: 33}]}
{(1, 2, 3): 98, '李白': [{12: 33}]}

#方法三
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(dicts.clear())  #清空字典
结果:None

3.修改

dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
dicts['hello'] = '柳宗元'
print(dicts)
结果:
{'hello': '柳宗元', (1, 2, 3): 98, '李白': [{12: 33}]}

4.查询

dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
print(list(dicts.keys()),dicts.values())    #可以把字典转成列表进行取值,就可以用列表的方法了
print(dicts.items())
结果:
['hello', (1, 2, 3), '李白'] dict_values(['world', 98, [{12: 33}]])
dict_items([('hello', 'world'), ((1, 2, 3), 98), ('李白', [{12: 33}])])
1.打印所有键的值
dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
for i in dicts.keys():
    print(i)

结果:
hello
(1, 2, 3)
李白

2.打印所有的值
print(dicts.values())
结果:dict_values(['world', 98, [{12: 33}]])

5.字典遍历的两种方法

dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
# 方法一
for a,b in dicts.items():
    print(a,b)
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]

# 方法二
for a in dicts:   #直接遍历,遍历出来的是字典的键
    print(a,dicts[a])
结果:
hello world
(1, 2, 3) 98
李白 [{12: 33}]

6.判断字典键里有没有这个值

dicts = {'hello':'world',(1,2,3):98,'李白':[{12:33}]}
if 'hello' in dicts:
    print("有!")
    
结果:有!

7.用字典统计字符串中每个字母出现的个数?

1.#第一种
strs = 'skcclfdlcgdc'
dicts = {}
for i in strs:
    dicts[i] = strs.count(i)    #引字母作为键dicts[i],统计次数

print(dicts)

结果:{'s': 1, 'k': 1, 'c': 4, 'l': 2, 'f': 1, 'd': 2, 'g': 1}

2.#第二种
strs = 'skcclfdlcgdc'
dicts = {}
for i in strs:
    if i not in dicts:   #判断取出的值是否在字典里面
        dicts[i] = 1
    else:
        dicts[i] = dicts[i] + 1  #加入的话,取出来再给它+1
print(dicts)

结果:{'s': 1, 'k': 1, 'c': 4, 'l': 2, 'f': 1, 'd': 2, 'g': 1}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ゆきな

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值