python3.6题目要求:
编写程序,生成包含50个0到10之间的随机整数,并统计每个元素的出现次数。(最终结果使用集合表示)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
list_1 = []
#随机生成包含50个0-10的整数
for i in range(50):
list_1.append(random.randint(0,10))
print('生成50个随机整数的列表为:',list_1)
#计算列表中每个元素出现的次数
for i in range(11):
list_2 = []
#计算元素个数并添加到列表list_2中
list_2.append(list_1.count(i))
#将列表转换成集合
s_1 = set(list_2)
print('其中元素%s出现的次数为:'%(i),s_1)
代码运行结果如下:
此时大家会有疑问,不是结果以集合的打印吗?
没错,不妨我们来看一下,如果此时要将生成50个随机整数的列表list_1转换成以列表的形式打印的话,此时要添加2行代码,代码如下:
#随机生成包含50个0-10的整数
for i in range(50):
list_1.append(random.randint(0,10))
print('生成50个随机整数的列表为:',list_1)
s = set(list_1)
print('列表以集合的形式输出为:',s)
代码运行结果如下:
这时候大家会发现,打印出来的集合只有11个元素,这是什么原因呢?
原因:其实这是集合的特性之一 去重性 ,集合会自动将重复元素去除,只保留一位,且内部元素是无序的。