Как получить новый случайный список таким образом, чтобы два значения были смежными? - PullRequest
0 голосов
/ 12 мая 2019

понимание списка Python, пример будет отличным.

Ответы [ 2 ]

1 голос
/ 12 мая 2019

Давайте начнем копирование с учетом того, что список должен быть разбит на пары или «список списков», результат перетасовывается и выравнивается обратно:

1) ваш пост

data = ['New York', 'TRUE', 'Thimphu', 'FALSE', 'Tokyo', 'FALSE', 'Japan', 'FALSE', 'India', 'FALSE']

2) Разделить список Python на другие «подсписки», то есть меньшие списки

chunks = [data[x:x+2] for x in range(0, len(data), 2)]

3) shuffle в random

import random
random.shuffle(chunks)

4) Как сделать плоский список из списка списков

flat_list = [item for sublist in chunks for item in sublist]

Объединены вместе:

data = ['New York', 'TRUE', 'Thimphu', 'FALSE', 'Tokyo', 'FALSE', 'Japan', 'FALSE', 'India', 'FALSE']
chunks = [data[x:x+2] for x in range(0, len(data), 2)]
import random
random.shuffle(chunks)
flat_list = [item for sublist in chunks for item in sublist]
print(flat_list)
0 голосов
/ 12 мая 2019
import random
size = 2
country_list = ['New York', 'TRUE', 'Thimphu', 'FALSE', 'Tokyo', 'FALSE', 'Japan', 'FALSE', 'India', 'FALSE']
country_dict = {}
for i in range(0, len(country_list), 2):
    country_dict[country_list[i]] = country_list[i + 1]
random_sample = random.sample(country_dict.items(), size)
final_list = [item for l in random_sample for item in l]
print(final_list)

Преобразуйте список в словарь, затем используйте случайный метод для элементов словаря, а затем перенесите его в список.

В этом random.sample был использован, который может сэмплировать входные данные заданного размера <= входной размер. </p>

Мы также можем использовать random.shuffle, что позволит рандомизировать dict предметов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...