如何从长度可变的元组列表中提取数据

2024-05-03 15:24:17 发布

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

我有一个包含多个元组的列表(项目的长度是可变的),我想提取一些位于元组中相同等级的特定数据

让我给你举个例子。让我们来研究这3个元组的列表:

x = [
    ('a1', 'b2', 'c3', 'd4'), 
    ('e5', 'f6', 'g7', 'h8'), 
    ('i9', 'j10', 'k11', 'l12')
]

我想检索每个元组的第四项。我在While循环中使用列表的长度:

y = len(x)
while y > 0:
    print(x[0][3])
    y = y - 1

我得到的结果是:

d4
d4
d4

但我希望得到以下结果:

d4
h8
l12

有没有办法将[0]替换为本节print(x[0][3])中的y变量以获得我想要的结果


Tags: 数据项目列表a1b2例子元组print
3条回答

只需对它们进行简单的迭代,一旦完成,就可以得到如下所示的元组

('a1', 'b2', 'c3', 'd4')
('e5', 'f6', 'g7', 'h8') 
('i9', 'j10', 'k11', 'l12')

一旦你让它们在每个元组上建立索引,得到最后一个值,比如[-1][len(tuples) - 1]以下是我的代码


x = [
    ('a1', 'b2', 'c3', 'd4'), 
    ('e5', 'f6', 'g7', 'h8'), 
    ('i9', 'j10', 'k11', 'l12')
]

read = [i[-1] for i in x]
print(read)
for tup in x :
   print(tup[3])

使用for循环更自然:

for item in x:
    print(item[3])

您的代码不起作用的原因是,您对其进行了硬编码,以始终获取列表中的第一个元组,即在print(x[0][3])中,0x[0]中需要是一个在列表中迭代的变量。如果你向上计数而不是向下计数,这会更容易

counter = 0
while counter < len(x):
    print(x[counter][3])
    counter += 1

但是当for存在时,使用while来实现这一点是没有意义的

相关问题 更多 >