如何在Python中获取所有子列表的第一个元素

3

我觉得请求这个有点儿蠢,但是我在使用列表时遇到了一些问题,我肯定做错了些什么,以下是代码:

myList = ['21 25 5', '16 20 18', '16 20 16', '2 3 2', '2 3 1']

lst2 = [item[0] for item in myList]
print(lst2)

output : ['2', '1', '1', '2', '2']

我正在尝试访问每个条目的第一个值,并且我希望输出结果像这样:

['21', '16', '16', '2', '2']

感谢您的帮助!

1
所以,你的 myList 有子列表的,只不过它们是字符串,而字符串的第一个元素是第一个字符。 - quamrana
1个回答

7
使用 str.split 函数,按空格分割每个项目:
myList = ['21 25 5', '16 20 18', '16 20 16', '2 3 2', '2 3 1']

lst2 = [item.split()[0] for item in myList]

print(lst2)

输出

['21', '16', '16', '2', '2']

你的代码正在访问每个字符串的第一个元素。

作为替代方案,因为你只对第一个元素感兴趣,可以使用maxsplit参数:

lst2 = [item.split(maxsplit=1)[0] for item in myList]

来自文档:

如果提供了maxsplit参数,则最多进行maxsplit次分割(因此,列表将最多具有maxsplit+1个元素)。


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