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)

代码运行结果如下:

python建立随机数列表,50个元素,没有重复项 python生成50个随机整数的列表_python3.6集合去重


此时大家会有疑问,不是结果以集合的打印吗?

没错,不妨我们来看一下,如果此时要将生成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)

代码运行结果如下:

python建立随机数列表,50个元素,没有重复项 python生成50个随机整数的列表_python_02


这时候大家会发现,打印出来的集合只有11个元素,这是什么原因呢?

原因:其实这是集合的特性之一 去重性 ,集合会自动将重复元素去除,只保留一位,且内部元素是无序的。