创建包含来自单个列表的信息的多个列表



我有一个数字字符串列表,像这样

["1", "2 3", "4 5 6"]

我想把这个列表变成多个其他列表,所以它看起来像这样

["1"] ["2 3"] ["4 5 6"]

是一个单独的列表。我该怎么做呢?

对于上下文,这些字符串将被拆分并转换为整数,因此最终结果将以

结束。
[1] [2,3] [4,5,6]

但这不是这个问题的一部分,因为我知道如何从步骤2到步骤3。

我发现了一个类似的帖子,但是我不知道如何像答案建议的那样使用字典或列表推导。我知道字典是如何工作的,但我对列表理解有点不太在行,所以如果有简单的方法可以做到这一点,我很抱歉。搜索诸如"创建多个列表在for循环python"并"从其他列表中创建列表"只领我到邮局联系。

你可以这样做:

sample = ['1', '2 3', '4 5 6']
new_list = []
for i in sample:
new_list.append([i])

输出如下:

[['1'], ['2 3'], ['4 5 6']]
然而,您的整个目标可以在同一个循环中简洁地完成:
for i in sample:
new_list.append([int(j) for j in i.split()])

输出:

[[1], [2, 3], [4, 5, 6]]

如果您想获得更python化的代码(尽管在我的测试中速度较慢),您可以这样做:

new_list = [[int(j) for j in i.split()] for i in sample]

最好将新列表存储在列表或字典中。如果你选择列表方式,你可以说

[[s] for s in ["1", "2 3", "4 5 6"]]

变量s成为每个字符串,和[s]所说的一个列表。

代码给你

[['1'], ['2 3'], ['4 5 6']]

最新更新