Python字典相关操作


字典的特点:可变,无序,key不重复

字典的定义:

dict()或d = {}
dict(**kwargs)
dict.fromkeys(iterable,value),可迭代对象的元素必须是一个二元结构
dict(mapping,**kwargs) 使用一个字典构建另一个字典
类方法dict.fromkeys(iterable, value)

字典元素的访问

d[key] 返回key对应的值,key不存在时抛出KeyError 异常
get(key,[,default]) 返回key对应的值,key 不存在时返回缺省值,若未设置则返回None。
setdefault(key[,dafault]) 返回key对应的值,若不存在,则添加kv对

字典增加和修改


d[key] = value
将key对应的值修改为value
key不存在添加新的kv对

update([other]) -> None
使用另一个字典的kv对更新本字典
key不存在,就添加
key存在,覆盖已经存在的key对应的值
就地修改

字典删除

pop(key[, default])
key存在,移除它,并返回它的value
key不存在,返回给定的default
default未设置,key不存在则抛出KeyError异常
popitem()
移除并返回一个任意的键值对
字典为empty,抛出KeyError异常
clear()清空字典

字典遍历


for key_1 in dict
for item in dict.items():

字典遍历和移除

d = dict(a=1, b=2, c='abc')
keys = []
for k,v in d.items():
    if isinstance(v, str):
        keys.append(k)
for k in keys:
    d.pop(k)
print(d)

习题练习

1.用户输入一个数字,打印每一位数字及其重复的次数

dict1 = {}
user_num = input('<<<')
for i in user_num:
    dict1.setdefault(i,0)
    dict1[i] += 1
for i in dict1:
    print(i,dict1[i])

2.数字重复统计:随机产生100个整数,数字的范围[-1000, 1000],升序输出所有不同的数字及其重复的次数

import random
dict1 = {}
n = 100
p = 1000
for i in range(n):
    m = random.randint(-p , p)
    dict1.setdefault(m,0)
    dict1[m] +=1

dict2 = sorted(dict1.items())

print('\n'.join(map(str,dict2)))
3.字符串重复统计: 字符表'abcdefghijklmnopqrstuvwxyz',   随机挑选2个字母组成字符串,共挑选100个, 降序输出所有不同的字符串及重复的次数
import random


str1 = 'abcdefghijklmnopqrstuvwxyz'
dict1 ={}
for i in range(100):
    str_choice = ''.join(random.sample(str1,2))
    dict1.setdefault(str_choice,0)
    dict1[str_choice] +=1

dict2 = sorted(dict1.items(),reverse=True)
print(dict2)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值