如何使用split和for循环从列表中提取单词而不是字符?

3
这是我的清单。
x = ["TEST0 321", "TEST1 123"]

我尝试了以下方法
for line in x:
    line.split()
    print(line[-2])

但是这会返回给我:
['TEST0', '321']
2
['TEST1', '123']
2

我需要的是:

['TEST0']
['TEST1']

因为我已经将[-2]设置为返回倒数第二个单词,但它却返回给我字符。
3个回答

3
line.split()会返回一个已经被分割的版本,但它不会改变原始行。请修改这一行。
line.split()

为了

line = line.split()

或者一次性完成整个操作,只需

print(line.split()[-2])

这是基本的赋值操作 @Lewiz1989 首先执行 line.split()(返回一个字符串列表),然后将其保存回变量 line 中。 - Tomerikoo

1
你没有保存split方法的结果,但为了展示另一种方法,你也可以使用列表推导式。
y=[i.split()[0] for i in x]

或者通过使用反向索引。
y=[i.split()[-2] for i in x]

0

你正在拆分字符串,但未保存结果,然后从每个字符串中获取特定字符。


    x = ["TEST0 321", "TEST1 123"]
                 ^            ^

您正在从字符"^"的位置获取数字"2"。

尝试将分割结果赋值给变量,然后打印输出:


    x = ["TEST0 321", "TEST1 123"]

    for line in x:
        words = line.split()
        print(words)


['TEST0', '321']
['TEST1', '123']

现在只需获取第一个结果。


    x = ["TEST0 321", "TEST1 123"]

    for line in x:
        words = line.split()
        print(words[0])


TEST0
TEST1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接