我只是想知道如何从元组列表中的元组中获取特定值。在
例如,假设我有一个元组列表:
list = [(12345, 6789, 23456), (156748, 347890, 1234556), (1009544, 13578690, 1223455), ....]
列表中有128个元组,每个元组有三个任意大的值。在
我需要做的是从每个元组中获取第三个值,因为我需要对每对元组使用这些值并找到它们的最大公约数。在
例如,我需要从元组1获取23456,从元组2获取1234556并找到它们的gcd,然后我需要对元组2和3执行相同的操作,等等。。在
这一点我可以做,但是我有点困惑我将如何从列表中获得每个元组的第三个值。在
我知道如果它只是一个列表,我可以简单地调用list[3*m]
,其中m在1到128的范围内。在
得到3的倍数的所有位置的数字,我可以对元组做同样的处理。但我不知道如何对元组列表执行此操作。在
抱歉,如果这有点混乱。我尽力解释。在
我不是要代码或任何东西,只是解释一下如何在列表中所有元组的某个位置找到值。在
您可以使用以下方法获取成对的值来计算GCD值:
这将显示以下输出:
^{pr2}$然后可以编写
calc_gcd
函数来显示您想要的结果。注意,不要使用list
作为变量名,因为它会影响Python自己的list函数。在这是怎么回事?这里的
zip
函数取两个列表,对于循环的每次迭代,它都从每个列表返回一个项。诀窍是给它两次元组列表,一个从开头开始,第二个从第二个条目开始,这样就可以得到连续的条目对返回。在因此
p1
是一个元组,p2
是一个元组,它将每个元组的第三个值传递给gcd函数,注意Python从0开始编号,所以第三个条目的索引是2。在要创建对的列表,可以使用Python
list comprehension
来构建列表,如下所示:pairs
将包含:你可以通过列表理解来实现这一点,比如:
您只需将索引传递给元组,方法是使用列表:
请参见示例a tutorial about tuples。在
然后,您可以循环列表,并将一个元组的第三项与第二个元组的第三项进行比较:
^{pr2}$相关问题 更多 >
编程相关推荐