如果Python中满足条件,如何从列表中提取值?

如果Python中满足条件,如何从列表中提取值?,python,list,for-loop,Python,List,For Loop,如果满足条件,我想提取列表中的值。例如,在一个列表[0,0,3,4]中,我想提取一个值,当添加到一个索引值时,该值给出7,因为添加项的索引值更高。到目前为止,我可以确认列表中存在这样一个数字,但无法找出如何提取值以使用它 nums=[0,0,3,4] target=7 for i in range(len(nums)): n = target-nums[i] in nums[i+1:] print (n) 输出: False False True False 由于第三个输出为

如果满足条件,我想提取列表中的值。例如,在一个列表[0,0,3,4]中,我想提取一个值,当添加到一个索引值时,该值给出7,因为添加项的索引值更高。到目前为止,我可以确认列表中存在这样一个数字,但无法找出如何提取值以使用它

nums=[0,0,3,4]
target=7
for i in range(len(nums)):
    n = target-nums[i] in nums[i+1:]
    print (n)
输出:

False
False
True
False

由于第三个输出为true,这告诉我7-3在较高索引的列表中,但如何将值分配给变量而不是布尔值?

您可以使用如下表达式:

n=目标nums[i]如果nums[i+1:]中的目标nums[i]否则无 或

nums=[0,0,3,4] 目标=7 对于rangelennums中的我: 如果nums[i+1:]中的目标nums[i]: n=目标nums[i]
这是一个常见的编程问题,称为二和(two sum),其中给定一个列表nums=[0,0,3,4],目标target=7,在列表中找到两个整数,它们相加得到目标

有很多方法可以在网上解决这个问题,但我会根据你已经写的内容来做。您知道nums[i+1:]中的target nums[i]是真的,那么为什么不将target nums[i]赋值给一个变量呢?7-3==4

如果您确实关心效率,那么您的解决方案当前位于^2,因为对于列表中的每个项目,您都在搜索列表的其余部分以找到其补充。这一点只需使用字典就可以在一次遍历列表的过程中实现。

target nums[i]in nums[i+1:]返回一个布尔值,因为我们声明已定义的某事物等于某事物。如果为真或假,我们可以使用布尔值向python指示应该做什么:

在这里:


你需要设置一个if条件,if true print nums[i],虽然这段代码可能会解决这个问题,但如何以及为什么解决这个问题会真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
nums=[0,0,3,4]
target=7
for i in range(len(nums)):
    if target-nums[i] in nums[i+1:]:
        n = target-nums[i]
        print(n)
nums=[0,0,3,4]
target=7
for i in range(len(nums)):
    if target-nums[i] in nums[i+1:]:
        n = target-nums[i]
        print(n)