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

时间:2020-07-08 17:08:10

标签: python list tuples

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

让我给你看一个例子。让我们研究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]部分中的 y 变量替换print(x[0][3])以获得我想要的结果?

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

为此使用for循环会更自然:

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

您的代码无法正常工作的原因是,您已经对其进行了硬编码,以始终获得列表中的第一个元组,即在print(x[0][3])0中的x[0]遍历您的列表的变量。如果您向上而不是向下计数,这会更容易。

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

但是在while存在的情况下使用for确实没有意义。

答案 2 :(得分:1)

只需对它们进行简单的迭代,一旦完成,您将只获得如下所示的元组

('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)

答案 3 :(得分:0)

尝试这个:

ball:render

答案 4 :(得分:0)

您可以尝试以下操作:-

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

输出:-

d4
h8
l12

答案 5 :(得分:0)

尝试 for loop

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

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

While loop

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