Python 将字符串转换为列表的列表

Python 将字符串转换为列表的列表,python,string,list,Python,String,List,我有一个字符串,比如: s=“abcdefghi” 我需要创建此列表的列表,以便形成的列表将:- list=['a'、'b'、'c']、['d'、'e'、'f']、['g'、'h'、'i'] 现在,字符串可以是任何内容,但长度始终为n*n 所以如果n=4. len=16 名单如下: [['1','2','3','4'],['5','6','7','8'],...,['13','14','15','16']] 因此列表列表中的每个列表的长度为4 所以我想写一个函数,它以字符串和n作为输入,并给出

我有一个字符串,比如:

s=“abcdefghi”

我需要创建此列表的列表,以便形成的列表将:-

list=['a'、'b'、'c']、['d'、'e'、'f']、['g'、'h'、'i']

现在,字符串可以是任何内容,但长度始终为n*n

所以如果
n=4.

len=16

名单如下:

[['1','2','3','4'],['5','6','7','8'],...,['13','14','15','16']]
因此列表列表中的每个列表的长度为4

所以我想写一个函数,它以字符串和n作为输入,并给出 作为输出的列表列表,其中列表中每个列表的长度为n

怎么能这样呢

更新:

如何将上面的列表转换回字符串

因此,如果l=
list=[[a'、'b'、'c']、[d'、'e'、'f']、[g'、'h'、'i']

如何将其转换为字符串:-

s=“abcdefghi”

我在stackoverflow中找到了解决方案:-

s = "".join("".join(map(str,l)) for l in list)

谢谢大家

下面是一个列表,它可以完成这项工作:

[list(s[i:i+n]) for i in range(0, len(s), n)]
如果
n*n==len(s)
始终为真,则只需将

n = int(len(s) ** 0.5) # Or use math.sqrt
对于编辑部分,这里有另一个列表:

''.join(e for e in sub for sub in l)

下面是一个完成此任务的列表:

[list(s[i:i+n]) for i in range(0, len(s), n)]
如果
n*n==len(s)
始终为真,则只需将

n = int(len(s) ** 0.5) # Or use math.sqrt
对于编辑部分,这里有另一个列表:

''.join(e for e in sub for sub in l)

我是numpy的个人粉丝

import numpy as np
s = "abcdefghi"
n = int(np.sqrt(len(s)))
a = np.array([x for x in s], dtype=str).reshape([n,n])

我是numpy的个人粉丝

import numpy as np
s = "abcdefghi"
n = int(np.sqrt(len(s)))
a = np.array([x for x in s], dtype=str).reshape([n,n])
我喜欢用发电机解决这样的问题


我喜欢用发电机来解决这样的问题

到目前为止,您尝试了什么?这里面有什么问题?这是。到目前为止你试过什么?这是什么问题呢?这是。或
[列表(s[n*i:(i+1)*n]),对于范围内的i(len(s)//n)]
,太快了!!非常感谢!是的,是9,我的错,我以为n是字符串长度。。。删除我的注释以及如何将列表列表转换回原始字符串?或者
[list(s[n*i:(i+1)*n]),对于范围内的i(len(s)//n)]
,太快了!!非常感谢!是的,是9,我的错,我以为n是字符串长度。。。删除我的注释以及如何将列表列表转换回原始字符串?