字典常用方法(高级)

本文深入探讨了Python字典的高级用法,包括更新、遍历、setdefault和fromkeys方法的运用,以及如何生成随机大写字母列表和去重技巧。通过实例演示了字典操作的灵活性和效率。

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

一、字典高级用法 

score ={'语文':100,'数学':100,'英语':100}

print(score)

#更新字典,对已有的key时更新value,对于不存在的是添加k-v

score.update({'语文':90,'英语':80,"政治":77})

print(score)

#遍历key

for key in score.keys():

    print(key)

#遍历values

for value in score.values():

    print(value)

#遍历key,value(序列解包)

for key,value in score.items():

print(key,value)

score ={'语文':100,'数学':100,'英语':100}
print(score)
#setdefault用于获取指定key对应的value
print(score.setdefault('语文',99))
#setdefault如果获取的key不存在着时,会为该keye设置value
print(score.setdefault('地理',88))
print(score)

#fromkeys可将序列转换为字典(使用固定的值作为value)
sc=dict.fromkeys(['math','english','chinese'])
print(sc)

sc2=dict.fromkeys(['math','english','chinese'],88)
print(sc2)

#用元组格式化字符串,根据位置填充占位符
str='bookName:%s,price:%10.2f'
print(str%('论语',998))
#用字典来格式化字符串,根据key来填充占位符
s='书名:%(name)s,价格:%(price)10.2f'
print(s%{'price':998,'name':'论语'})

二、随机大写字符存入列表

(1)创建列表  (2)生成随机数   (3)numpy模块生成随机数

#生成N个随机的大写字符存入列表
NUM=10
import random
#创建空列表
result=[]
#循环10次,生成10个随机数
for i in range(10):
    #65-91(不包括)的随机数
    n=random.randint(65,91)
    #随机数转成字符,并添加到列表
    result.append(chr(n))
print(result)

#生成N个随机的大写字符存入列表
NUM=10
import random
#列表推导式
#将chr(random.randint(65,90))表达式生成随机的大写字母
result=[chr(random.randint(65,90)) for i in range(NUM)]
print(result)

使用numpy模块依次生成n个随机数(注意numpy得有这个库,不然用不了)

result=[chr(i) for i in numpy.random.randint(65,90,[NUM,1]) ]
print(result)

三、

import random
#使用列表推导式创建一个包含重复元素的列表
mylist=[random.randint(20,30)for i in range(15)]
#用新列表搜集,只搜集不重复的元素
print(mylist)
#用新列表只搜集不重复的元素
target=[]
#遍历原列表中每个元素
#若新列表不包括当前元素,新列表添加该元素即可,这样保证不重复
for ele in mylist:
    if ele not in target:
        target.append(ele)
print(target)

import random
#使用列表推导式创建一个包含重复元素的列表
mylist=[random.randint(20,30)for i in range(15)]
#用新列表搜集,只搜集不重复的元素
print(mylist)
#将原列表传给集合,自动去重
target=list(set(mylist))
print(target)

import random
import itertools
#使用列表推导式创建一个包含重复元素的列表
mylist=[random.randint(20,30)for i in range(15)]
print(mylist)
#首先必须对列表进行排序
mylist.sort()
#进行分组
it=itertools.groupby(mylist)
for k,g in it:
    print(k,end=" ")

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值