字符串到python中的多维列表

我想知道如何在 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 wrap


def words(letters):

    gridLetters = wrap(letters,8)


    separarParabras = [gridLetters[i*1:i*1+1] for i in range(8)]


    return separarParabras


print(words('KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU'))


不负相思意
浏览 160回答 4
4回答

宝慕林4294392

这是一个可以做到这一点的班轮(虽然不是这个解决方案的粉丝) [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 = 8words = [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']]

偶然的你

from textwrap import wrapdef words(letters):    gridLetters = wrap(letters,8)    separarParabras = [[char for char in gridLetters[i]] for i in range(8)]    return separarParabrasprint(words('KARALLOCGNTEBMAIBHEOCPFMRUNEOFUMAWGKDURAVDRECAZSEMJALOTSOXVACUNU'))诀窍是有一个嵌套的列表理解,你从 gridLetters 中选择一个词使用gridLetters[i]并遍历其中的字符

哈士奇WWW

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

HUWWW

首先找到字符串,然后将其拆分为列表,然后使用列表理解试试这个衬垫:li = [['KARALLOC'], ['GNTEBMAI'], ['BHEOCPFM'], ['RUNEOFUM'], ['AWGKDURA'], ['VDRECAZS'], ['EMJALOTS'], ['OXVACUNU']]li = [list(item) for l in li for item in l]print(li)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python