我已经生成了一个1-100的随机数列表,我想计算重复的次数。例如[1,2,2,3,3,3,4]
有1个额外的2和2个额外的三分,所以3个重复。我想在不使用任何类型的功能的情况下实现这一目标。
这是我的尝试:
import random
counter = 0
compList = []
num = random.randint(0,100)
for i in range(0,100):
comp_num = random.randint(0,100)
compList.append(comp_num)
print(compList)
print(counter)
答案 0 :(得分:1)
在添加之前,只需检查该号码是否在列表中。
import random
counter=0
compList=[]
for i in range(100): # don't need range(0,100)...zero is implied.
comp_num=random.randint(0,100)
if comp_num in compList: # if number is already in list count it as a repetition.
counter += 1
compList.append(comp_num)
# don't indent this under the for loop
print(sorted(compList)) # sorted so you can check the result.
print('repititions:',counter)
答案 1 :(得分:1)
根据您的评论,我了解您希望计算列表中与前一个元素相等的元素。这等于列表中元素的数量减去列表中 distinct 元素的数量。填写完毕后,如果compList
是您的列表,那么您需要
repetitions_count = len(compList) - len(set(compList))
因为set()
只包含列表中每个值的一个副本。
在您的示例compList = [1,2,2,3,3,3,4]
中,根据需要,结果为3
。
顺便说一下,还有另一种方法来创建更快,更短,更pythonic的列表 - 即,这个oneliner:
compList = [random.randint(0,100) for v in range(0,100)]