- 统计1000个随机数中重复的数字
题目:数字重复统计:- 1)随机生成1000个整数;
2)数字范围[20,100];
3)升序输出所有不同的数字及其每个数字重复的次数
- 1)随机生成1000个整数;
第一种:
import random
all_nums = [] ##定义一个空列表
for item in range(1000): ##生成1000个随机数放到列表中
all_nums.append(random.randint(20,100)) ##随机数范围在20-100之间
#对生成的1000个数进行排序,然后加到字典中
sorted_nums = sorted(all_nums) ##排序
num_dict = {} ##定义一个空字典
for num in sorted_nums: ##遍历排序好的列表
if num in num_dict:
num_dict[num] += 1 ##key存在,则更新value值
else:
num_dict[num] = 1 ###在空字典num_dict中添加新key—value的键值对
print('数字\t\t出现次数')
for i in num_dict:
print('%d\t\t%d' %(i,num_dict[i]))
第二种:
import random
num_dirc = {}
#统计数字及对应的次数
for i in range (1000):
num_key = random.randint(20,100)
if num_key in num_dirc:
num_dirc[num_key] += 1
else:
num_dirc[num_key] = 1
##排序,便历输出
for i in sorted(num_dirc.keys()):
print('%d,%d' %(i,num_dirc[i]))
- 结果:
数字 出现次数
20 8
21 5
22 10
23 12
24 12
25 11
26 12
...##后面省略部分输出
- 统计句子中重复的单词
题目要求:
- 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.;
- 用户输入一句英文句子;
- 打印出每个单词及其重复的次数;
- 示例:
输入: “hello java hello python”
输出:
hello 2
java 1
python 1
language = input('请输入一句英文:')
languages = language.split(' ') #先按照空格分离字符串,成为列表
words = {} #设置一个新的字典
for i in languages: #遍历列表
if i == ',' or i == '.': #当循环到符号的时候跳出此次循环
continue
count = languages.count(i) #统计次数
words[i] = count
#key=单词,value=重复的次数,添加到字典中,字典中如果key值存在则更新value值,所以生成的字典中key不会重复。
for a in words:
print('%s\t\t%s' %(a,words[a])) #遍历打印字典
-
其中:
count = languages.count(i) #统计次数
words[i] = count -
可等效为:
if i in words:
words[i] += 1
else:
words[i] = 1 -
结果:
请输入一句英文:hello java hello python
hello 2
java 1
python 1
- 随机生成银行卡号
题目要求:
随机生成100个卡号;
卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100),
生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";
输出卡号和密码信息, 格式如下:
卡号 密码
6102009001 000000
提示:
- fromkeys第一个参数可以是 list/tuple/str/set,将第一个参数的元素作为字典的key值,并且所有key的value值一致,为’00000000’
代码:
card_ids = [] #创建一个空列表
for i in range(100): #要求生成100个卡号所以循环100次
s = '6102009%.3d' %(i+1) #指定前几位为6102009 后三位依次加1
card_ids.append(s) #添加元素
card_ids_dict = {}.fromkeys(card_ids,'redhat')
#将刚才生成含有100个元素的cards_ids作为key,value全为redhat
print('卡号\t\t\t\t\t密码')
for key in card_ids_dict: #遍历字典
print('%s\t\t\t%s' %(key,card_ids_dict[key]))
结果:
卡号 密码
6102009001 redhat
6102009002 redhat
6102009003 redhat
6102009004 redhat
6102009005 redhat
6102009006 redhat
6102009007 redhat
6102009008 redhat
6102009009 redhat
6102009010 redhat
6102009011 redhat
6102009012 redhat
...
6102009098 redhat
6102009099 redhat
6102009100 redhat
##