4 回答

TA貢獻2021條經驗 獲得超8個贊
這是一個可以做到這一點的班輪(雖然不是這個解決方案的粉絲) [list(x) for x in [word[i:i+8] for i in range(0, len(word), 8)]]
一個更好的班輪(如@chris mentionned): [list(w[i:i+8]) for i in range(0, len(w), 8)]
我會把它分成兩部分:
text = 'KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU'
n = 8
words = [text[i:i+n] for i in range(0, len(text), n)]
grid_letters = [list(w) for w in words]
輸出:
[['K', 'A', 'R', 'A', 'L', 'L', 'O', 'C'],
['G', 'N', 'T', 'E', 'B', 'M', 'A', 'I'],
['B', 'H', 'E', 'O', 'C', 'P', 'F', 'M'],
['R', 'U', 'N', 'E', 'O', 'F', 'U', 'M'],
['A', 'W', 'G', 'K', 'D', 'U', 'R', 'A'],
['V', 'D', 'R', 'E', 'C', 'A', 'Z', 'S'],
['E', 'M', 'J', 'A', 'L', 'O', 'T', 'S'],
['O', 'X', 'V', 'A', 'C', 'U', 'N', 'U']]

TA貢獻1841條經驗 獲得超3個贊
from textwrap import wrap
def words(letters):
gridLetters = wrap(letters,8)
separarParabras = [[char for char in gridLetters[i]] for i in range(8)]
return separarParabras
print(words('KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU'))
訣竅是有一個嵌套的列表理解,你從 gridLetters 中選擇一個詞使用gridLetters[i]并遍歷其中的字符

TA貢獻1799條經驗 獲得超6個贊
嘗試
def words(s, size):
return [[ch for ch in s[i*size:(i + 1)*size]] for i in range(8)]
for e in words('KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU', 8):
print(e)
輸出
['K', 'A', 'R', 'A', 'L', 'L', 'O', 'C']
['G', 'N', 'T', 'E', 'B', 'M', 'A', 'I']
['B', 'H', 'E', 'O', 'C', 'P', 'F', 'M']
['R', 'U', 'N', 'E', 'O', 'F', 'U', 'M']
['A', 'W', 'G', 'K', 'D', 'U', 'R', 'A']
['V', 'D', 'R', 'E', 'C', 'A', 'Z', 'S']
['E', 'M', 'J', 'A', 'L', 'O', 'T', 'S']
['O', 'X', 'V', 'A', 'C', 'U', 'N', 'U']

TA貢獻1874條經驗 獲得超12個贊
首先找到字符串,然后將其拆分為列表,然后使用列表理解
試試這個襯墊:
li = [['KARALLOC'], ['GNTEBMAI'], ['BHEOCPFM'], ['RUNEOFUM'], ['AWGKDURA'], ['VDRECAZS'], ['EMJALOTS'], ['OXVACUNU']]
li = [list(item) for l in li for item in l]
print(li)
添加回答
舉報