【问题标题】:Generate list of 'almost' random tuples生成“几乎”随机元组的列表
【发布时间】:2018-09-19 08:21:15
【问题描述】:

假设列表 'l' 包含元组并且有偶数个元素。 每个元组包含 3 个数字 (int) 0

现在有趣的部分,有以下模式:

l[0] = l[1], l[2] = l[3], l[4] = l[5] .....

所以列表看起来像这样:

l[0] = (100, 200, 10)

l[1] = (100, 200, 10)

l[2] = (250, 45, 30)

l[3] = (250, 45, 30)

l[4] = (30, 10, 5)

l[5] = (30, 10, 5)

.......

问题不在于如何生成列表,因为这很容易,我想知道是否有任何方法可以在一行中完成,使用一些聪明的技巧和列表理解等。

现在代码如下所示:

from random import randint
b = []
for _ in range(4):
    b += [(randint(0, 255), randint(0, 255), randint(0, 255))]*2

# example for how b looks:
# [(206, 89, 40), (206, 89, 40), (36, 115, 91), (36, 115, 91), (232, 55, 96), (232, 55, 96), (183, 114, 179), (183, 114, 179)]

【问题讨论】:

  • 你会给出你的实际代码吗?
  • 欢迎来到stackoverflow!请使用tour,阅读how to ask a question 并提供minimal, complete and verifiable example 来重现您的问题。
  • 我不明白你的模式应该是什么,除了其中一些是平等的。
  • @khelwood:据我了解,OP希望连续的相等
  • @RahulAgarwal 不,如果连续的相等,则它们必须 all 相等。我可以看到每个奇数索引的元组都等于它之前的那个,但是是这样吗?这些值是任意的吗?

标签: python list random tuples list-comprehension


【解决方案1】:

您可以在列表推导中使用双循环:

b = [value for _ in range(4)
     for value in [(randint(0, 255), randint(0, 255), randint(0, 255))] * 2]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多