我有一个包含多个元组的列表(项目的长度是可变的),我想提取位于元组内相同等级的一些特定数据。
让我给你看一个例子。让我们研究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])
以获得我想要的结果?
答案 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