Создать список «почти» случайных кортежей - PullRequest
0 голосов
/ 19 сентября 2018

Предположим, что список 'l' содержит кортежи и имеет четное количество элементов.Каждый кортеж состоит из 3 чисел (int) 0 <= x <= 255 </p>

А теперь самое интересное, есть следующий шаблон:

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)]

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете использовать двойной цикл в понимании списка:

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