все комбинации списка слов A со списком слов b и списком слов C при сохранении порядка указанных слов в списке - PullRequest
0 голосов
/ 26 мая 2018

Всего нубов здесь 07. Я надеюсь, что кто-то может помочь мне здесь.Я пытаюсь сгенерировать список слов, который будет объединять список из 3 слов со всеми возможными комбинациями, сохраняя порядок указанных списков. Я беспристрастен к тому, какой язык будет использоваться Я использовал Python и Powershell

Я искалGoogle, и хотя я могу объединить все это, я не могу понять, как поддерживать порядок

Примеры списка слов A

Alica
Mike
John

список слов b

bike
car
truck

список слов C

123
321
231

ожидаемый результат будет включать все комбинации

Alicabike321
Miketruck123
Johncar231
Alicacar231
Miketbike123
Johntruck321.....

, поэтому, по сути, список слов A является якорем для b и b к c, если это имеет смыслпомощь будет принята с благодарностью ..

Bal33p.

Ответы [ 3 ]

0 голосов
/ 26 мая 2018

Вы можете легко добиться этого с помощью вложенной петли for.Пример Python:

Начните с создания списков:

wordlist_A = ['Alica', 'Mike', 'John']
wordlist_B = ['bike', 'car', 'truck']
wordlist_C = ['123', '321', '231']

Затем напишите вложенный цикл for следующим образом:

for word_C in wordlist_C:
    for word_B in wordlist_B:
        for word_A in wordlist_A:
            print(word_A+word_B+word_C)

То, что мы делаем, этодля каждого слова _C, проходящего через каждое слово_B, и для каждого слова _B, проходящего через каждое слово_A.

Затем в последнем утверждении print мы устанавливаем, что порядок равен word_a, word_B, word_C.

Вы можете переключать порядок циклов for, если хотите, для этого нужно изменить порядок, в котором каждая комбинация слов появляется в выходных данных.

0 голосов
/ 26 мая 2018

Ваш ожидаемый порядок вывода не может быть достигнут с помощью суммированных команд, как бы вы ни заказывали их, поскольку они повторяются одна за другой.

Здесь версия powershell

ForEach($name in 'Alica', 'Mike', 'John'){
  ForEach($vehicle in 'bike', 'car', 'truck'){
    ForEach($number in '123', '321', '231'){
      "{0}{1}{2}" -f $name,$vehicle,$number
    }
  }
}

Возвращениеэти выходные данные:

Alicabike123
Alicabike321
Alicabike231
Alicacar123
Alicacar321
Alicacar231
Alicatruck123
Alicatruck321
Alicatruck231
Mikebike123
Mikebike321
...

РЕДАКТИРОВАТЬ Чтобы прочитать списки слов из файлов:

ForEach($name in (Get-Content 'wordListA.txt)){
  ForEach($vehicle in (Get-Content 'wordListB.txt)){
    ForEach($number in (Get-Content 'wordListC.txt)){
      "{0}{1}{2}" -f $name,$vehicle,$number
    }
  }
}
0 голосов
/ 26 мая 2018

Итак, вы идете:

listA = ['Alica','Mike','John']
listB = ['bike','car','truck']
listC = ['123','321','231']

output_list = []
for item1 in listA:
    for item2 in listB:
        for item3 in listC:
            output_list.append(item1+item2+item3)
print(output_list)

Решение так же просто, как итерация каждого элемента в каждом списке в указанном порядке и просто добавление результата во временный список.Наконец, вы можете использовать или распечатать переменную списка результатов.

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