亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符串到python中的多維列表

字符串到python中的多維列表

不負相思意 2023-02-22 19:09:50
我想知道如何在 python 中將字符串轉換為多維列表,我需要的輸出是[['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']]但我只知道如何轉換成這種形式[['KARALLOC'], ['GNTEBMAI'], ['BHEOCPFM'], ['RUNEOFUM'], ['AWGKDURA'], ['VDRECAZS'], ['EMJALOTS'], ['OXVACUNU']]我的代碼是這樣的:from textwrap import wrapdef words(letters):    gridLetters = wrap(letters,8)    separarParabras = [gridLetters[i*1:i*1+1] for i in range(8)]    return separarParabrasprint(words('KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU'))
查看完整描述

4 回答

?
寶慕林4294392

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


查看完整回答
反對 回復 2023-02-22
?
偶然的你

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]并遍歷其中的字符


查看完整回答
反對 回復 2023-02-22
?
哈士奇WWW

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


查看完整回答
反對 回復 2023-02-22
?
HUWWW

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)


查看完整回答
反對 回復 2023-02-22
  • 4 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號