我正在寻找一些我一直在写的有趣的python代码的帮助,因此麻烦的代码就是:
v = randint(1,7)
if v != 7:
d = randint(1,5)
if d == 1:
print(vdset[v], file=text_file)
我的目标是使用randint从我的集合中选择一个随机值,但是,在运行时我得到'set' object does not support indexing
的错误。我想那时我需要用其他东西替换set
的使用,但我不确定它会起作用。
答案 0 :(得分:0)
问题是集合是唯一元素的无序集合。您应该查看Python的data structure:
您可以尝试:
v = randint(1,7)
if v != 7:
d = randint(1,5)
if d == 1:
print(list(vdset)[v], file=text_file)
答案 1 :(得分:0)
您也可以使用random.choice
。这有一个问题,其中一个集合不支持索引,但你可以简单地将集合转换为一个列表(它支持索引)。
>>> from random import choice
>>> my_set = {1, 3, 2, 7, 5, 4}
>>> choice(my_set)
Traceback (most recent call last):
...
TypeError: 'set' object does not support indexing
>>> choice(list(my_set))
3