Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想附加到一个新列表中,仅附加第三个元素与第一个元组的第三个元素相同的元组_Python_Iteration_Tuples - Fatal编程技术网

Python 我想附加到一个新列表中,仅附加第三个元素与第一个元组的第三个元素相同的元组

Python 我想附加到一个新列表中,仅附加第三个元素与第一个元组的第三个元素相同的元组,python,iteration,tuples,Python,Iteration,Tuples,对元组列表进行排序后,例如: jen = (34,54,15) , (34,65,15), (34, 78,89) ... 我试图只将包含第一个元组第三个元素的元组附加到新列表中。例如,新列表必须只包含: (34,54,15) (34,65,15) 这是我的伪代码: Salvation_array = [] For lines in jen: Num = 0 If jen[0] [:-2] = Num: Salvation_array.append

对元组列表进行排序后,例如:

jen =  (34,54,15) , (34,65,15), (34, 78,89) ...
我试图只将包含第一个元组第三个元素的元组附加到新列表中。例如,新列表必须只包含:

(34,54,15) 
(34,65,15)
这是我的伪代码:

   Salvation_array = []
    For lines in  jen:
    Num = 0
    If jen[0] [:-2] = Num:
    Salvation_array.append(Num)

我真的很困惑,你能帮我吗?建议点什么吗?

你可以用
过滤器
方法轻松做到这一点

在一行中
过滤器
调用:

array1 = [(34,54,15) , (34,65,15), (34, 78,89)]
array2 = filter(lambda element: element[2] == array[0][2], array)
print array2
[(34, 54, 15), (34, 65, 15)]
您可以查看
过滤器
的文档。 所以,基本上是什么过滤器(一些函数(e),数组)
它遍历数组的每个元素
e
,并测试它是否满足某些条件。此检查使用调用
some_函数(e)
完成。如果该函数返回
True
,则保留元素
e
,否则不保留

另外,由于您提到您是python新手,我想您可能不知道python中的
lambda
。所以基本上可以把它们当作一个线性的无名函数。您可以将以下内容视为等效内容:
lambda x:print x
def print it(x):print x您可以查看关于
lambda


希望有帮助:)

如果我正确理解了需求,这应该可以满足您的要求:

jen = (34,54,15), (34,65,15), (34, 78,89)

salvation_army = [j for j in jen if j[2] == jen[0][2]]

print(salvation_army)

# Output:
# [(34, 54, 15), (34, 65, 15)]
它类似于@Harsh的答案,但使用列表理解而不是
过滤器
。(这是品味的问题。)

更接近于你想做的事情:

salvation_army = []
desired_value = jen[0][2]

for line in jen:
    if line[2] == desired_value:
        salvation_army.append(line)

为了澄清,“包含第三个元素的元组”是指“第三个元素必须相同”还是“它们必须在任何地方包含第三个元素”?如果您有此
(34,54,15)、(34,65,15)、(34,15,89)
则输出应该是什么。仅比较第一个类型的第三个元素。@danidee输出应为(34,54,15)、(34,65,15)。只有这个很好的答案,我应该开始使用列表理解更多!天哪,你用一行代码做了你想做的。非常令人印象深刻,谢谢。如果一个人懂python,我无法想象他会有多危险。谢谢你的提示和指导。确实很有帮助