使用变量来确定要打印的集合中的哪个值

时间:2017-05-29 17:35:32

标签: python python-3.x

我正在寻找一些我一直在写的有趣的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的使用,但我不确定它会起作用。

2 个答案:

答案 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