从列表中的元组访问第n个元素,但元组的长度不同

2024-10-02 02:30:02 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我有一个这样的元组列表,第一个元组的最后一个元素是空的:

data=[('1',),('2','3'),('6','5'),('3','4')]

我想得到每个元组的最后一个元素,我使用这样的方法,对于数据中的I,j,如果j不是空的,那么将j作为列表:

    lastelemtent=list(set([j for i,j in data if j]))[0]

我得到错误:not enough values to unpack (expected 2, got 1) 我希望得到如下结果:lastelemtent=['3','5','4']


Tags: 数据方法in元素列表fordataif
3条回答

也许您需要每个元组的第二个元素,除非元组较短

[x[1] for x in data if len(x) > 1]

可以使用语法something[-1]选择元组列表的最后一个元素

要从数据中获取每个元组的最后一个元素,必须运行

lastelement = [e[-1] for e in data]

你的前提是错误的。('1',)中的“最后一个元素”不是空的,但这只是一个只有一个元素的元组,这就是为什么“没有足够的值来解包”。这也意味着'1'既是该元组的第一个元素,也是最后一个元素,因此使用索引[-1]会起作用(不会产生错误),但可能不会达到预期或想要的效果

如果您想要一个“空”的最后一个元素,也许可以使用('1', '')('1', None)

相关问题 更多 >

    热门问题