比较 2 个列表而不使用“in”

Posted

技术标签:

【中文标题】比较 2 个列表而不使用“in”【英文标题】:Comparing 2 lists without using "in" 【发布时间】:2017-03-02 17:46:57 【问题描述】:

如果没有在 if 语句中使用单词“in”,我无法检查 list1 中的数字是否在 list2 中。另外,我只能使用函数 len() 和 range()

【问题讨论】:

那么到目前为止你尝试过什么? 这看起来像一个家庭作业,这不是你的家庭作业解决论坛。 欢迎来到 Stack Overflow!请edit您的问题显示what you have tried so far。您应该包含您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。 这是什么虐待狂的作业……你的意思是你只能使用函数 len 和 range?(显然这个作业的作者不明白只使用这两个函数是不可能的。 .. 解决这个问题(当然你也使用类似__getattr__ :P) wiki.python.org/moin/ForLoop 【参考方案1】:
>>>l1 = [i for i in range(1,25)]
>>>l2 = [i for i in range(24, 50)]
>>>[x for x in l1 if x in l2]
[24]

对不起,我看错了。这个怎么样:

for i in range(len(l1)):
    for j in range(len(l2)):
        if l2[j] == l1[i]:
            print l2[j]

如果您需要将匹配项添加到列表中,只需在循环之外创建一个列表并追加即可。

【讨论】:

以上是关于比较 2 个列表而不使用“in”的主要内容,如果未能解决你的问题,请参考以下文章

mysql中比较实用的几个函数

强制 MySQL 从 WHERE IN 子句返回重复项而不使用 JOIN/UNION?

从 C# 中的列表创建逗号分隔列表而不终止逗号

python对二维列表进行排序而不使用lambda

Flutter使用地图比较2个对象列表并包含不起作用

python中使用heapq查看最大与最小的N个元素列表