字典练习题

(一)题目一:
重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
1. 用户输入一句英文句子;
2. 打印出每个单词及其重复的次数;

代码:

sentence= input('请输入一句英文句子:')
li_sentence = sentence.split()
sentence_dict = {}
for word in li_sentence:
    if word not in sentence_dict:
        sentence_dict[word] = 1
    else:
        sentence_dict[word] +=1
print(sentence_dict)

运行测试:
在这里插入图片描述

(二)题目二:
数字重复统计:
1). 随机生成1000个整数;
2). 数字的范围[20, 100],
3). 升序输出所有不同的数字及其每个数字重复的次数;

代码:

num = []
import random
#随即生成100个整数
for i in range(100):
    num_add = random.randint(20,100)	#数字范围20~100
    num.append(num_add)
#升序输出所有不同的数字及每个数字重复的次数
sorted_num = sorted(num)
print('升序输出数字结果:%s'%sorted_num)
num_dict = {}
for num in sorted_num:
    if num in num_dict:
        num_dict[num]+= 1
    else:
        num_dict[num] = 1
print('每个数字出现的次数分别为:%s'%num_dict)

运测试:
在这里插入图片描述

(三)题目三:

  1. 随机生成100个卡号;
    卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),

  2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";

  3. 输出卡号和密码信息, 格式如下:
    卡号 密码
    6102009001 000000

解题思路:
fromkeys第一个参数可以是 list/tuple/str/set
将第一个参数的元素作为字典的key值
并且所有key的value值一致,都为’00000000’

代码:

usr_id = []
for i in range(100):
    num='6102009%.3d'%(i+1)
    usr_id.append(num)
usr_id_dict = {}.fromkeys(usr_id,'westos')
print(usr_id_dict,'end= ')
print('用户名\t\t\t\t\t','密码')
for key in usr_id_dict:
    print('%s\t\t\t\t%s'%(key,usr_id_dict[key]))

运行:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值