我还在尝试创建一个半随机的字母列表。我想我的名单有60个字母,但正好有20%的时间,我想同一封信比2封信回来。。你知道吗
我做了以下代码:
import random
from random import shuffle
import pandas as pd
probab = range(61)
shuffle(probab)
letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
my_list = [random.choice(letters) for _ in range(2)]
for i in probab.items():
if i < 12: # choice of number between
my_list.append(my_list[len(my_list)-2]) # add the letter n-2
else:
my_list.append(random.choice(letters))
print(my_list).
我们解决这个问题的逻辑是,我从1-60创建一个列表,然后混合它。你知道吗
在我想做一个循环,代码看如果第一个项目小于12,如果是,然后添加相同的字母比2回来,如果不添加一个随机字母。。。你知道吗
我以为是12,因为是60的20%
当我运行列出的代码时,出现以下错误:
for i in probab.items():
AttributeError: 'list' object has no attribute 'items'
谢谢你的帮助。你知道吗
你的逻辑需要稍微调整一下:如果你想重复20%的时间,那么其他80%的时间你必须确保你不要重复。简单的方法是使用循环。或者,您可以从不包含不需要的字母的字母集合中进行选择,但是这样会更加冗长,并且在生成随机字母时执行一两个额外的循环可能会更快。你知道吗
另外,因为您想要一个60个字母的列表,
probab
的长度必须是58。而且不需要制作letters
列表:random.choice
会很高兴地从字符串中选择。你知道吗典型输出
相关问题 更多 >
编程相关推荐