Как использовать .join () для преобразования букв в строку - PullRequest
2 голосов
/ 12 февраля 2020

Я создал два списка кортежей, список всех возможных 3-буквенных комбинаций и список всех возможных 4-ди git комбинаций. Теперь мне нужно объединить каждый элемент-кортеж для создания строки, и я попытался использовать функцию -join (), но по какой-то причине она не работает. Я использовал эти разные коды, но в результате я получаю только пустой список.

l = combinations('ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ', 3) #List of every 3-letter combination
d = combinations('0123456789', 4)                    #List of every 4-digit combination
print(list(l))
print(list(d))

joinl = [''.join(t) for t in l]
print(list(joinl))

Что дает меду вывод:

[('A', 'B', 'C'), ('A', 'B', 'D'), ('A', 'B', 'E'), ('A', 'B', 'F'), ('A', 'B', 'G') ... ('V', 'X', 'Z')] 
[('0', '1', '2', '3'), ('0', '1', '2', '4'), ('0', '1', '2', '5'), ('0', '1', '2', '6') ... ('6', '7', '8', '9')] 
[] 

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

joinl = [''.join(t) for t in l]
print(list(joinl))

и

joinl = []
for t in l:
    joinl.append(''.join(t))
print(list(joinl))

но в результате я получаю только пустой список. Вместо

[(ABC), (ABD) ... (VXZ)] 
[(1234, (1235) ... (6789)]

1 Ответ

2 голосов
/ 12 февраля 2020
from itertools import combinations

L = list(combinations('ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ', 3)) #List of every 3-letter combination
d = list(combinations('0123456789', 4))                    #List of every 4-digit combination
print(L)
print(d)

joinl = [''.join(t) for t in L]
print(joinl)

Следует избегать использования l (строчный L) в качестве имени переменной (PEP8), поскольку оно может быть очень похоже на 1 (один) и I (верхний регистр i) в некоторые шрифты.

...