将列表分成子列表?

时间:2013-08-01 02:06:02

标签: python list python-3.x

我有一个这样的列表:

l = ['a,b,c,d' , 'a,b,c,d', 'a,b,c,d', 'a,b,c,d']

我希望这样做,以便列表格式如下:

l = [['a,b,c,d'],['a,b,c,d'],['a,b,c,d'],['a,b,c,d']]

或甚至四个单独的列表都没问题,但我希望基本上能够遍历每个子列表中的每个元素。这就是我到目前为止所做的:

for string in range(0, len(userlist)):
    small_list = userlist[string:]
    print(small_list)

这不会将列表分成我想要的列表。我想我必须将列表分成4块。

4 个答案:

答案 0 :(得分:4)

您可以使用list comprehension

执行此操作
l = [s.split(",") for s in l]
# result: [['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd']]

答案 1 :(得分:2)

您可以使用它来获取字符列表的列表:

l = [str.split(",") for str in l]
# prints out [['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd']]

或者如果您不想将字符串拆分为字符:

l = [[str] for str in l]
# prints out [['a,b,c,d'], ['a,b,c,d'], ['a,b,c,d'], ['a,b,c,d']]

答案 2 :(得分:0)

试试这个 -

result = [[each] for each in l]

答案 3 :(得分:0)

map(lambda x:[x], l)

output:
[['a,b,c,d'], ['a,b,c,d'], ['a,b,c,d'], ['a,b,c,d']]