如何在迭代另一个列表时填充新列表?

Squ*_*.98 6 python string for-loop list python-3.x

代码

#Variables
var1 = ['Warehouse Pencil 1.docx', 'Production Pen 20.docx']

list1 = []
for x in var1:
    splitted = x.split()
    a = [splitted[0] + ' ' + splitted[1]]
    list1.append(a)
    print(list1)
Run Code Online (Sandbox Code Playgroud)

输出

[['Warehouse Pencil']]
[['Warehouse Pencil'], ['Production Pen']]
Run Code Online (Sandbox Code Playgroud)

目标

我打算拆分列表,获取每个部分的第 1 个和第 2 个单词,然后将它们放入一个新列表中。

为什么我的输出给我一个奇怪的输出?我哪里错了?

期望输出

我想要的输出应该是这样的:

['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

抓取第 1 个和第 2 个单词并将它们放入 1 个列表中。

CDJ*_*DJB 14

这应该解决它 - 将打印语句移出循环,并创建a一个字符串而不是一个列表。

#Variables
var1 = ['Warehouse Pencil 1.docx', 'Production Pen 20.docx']

list1 = []
for x in var1:
    splitted = x.split()
    a = splitted[0] + ' ' + splitted[1]
    list1.append(a)
print(list1)
Run Code Online (Sandbox Code Playgroud)

输出:

['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

您还可以使用列表理解:

>>> [' '.join(x.split()[:2]) for x in var1]
['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

  • 列表理解基本上是一种将循环压缩为一行的方法。您可以在[此处]阅读有关它们的更多信息(/sf/ask/2438516601/它) (2认同)