3 回答
TA贡献1864条经验 获得超6个赞
或者,您可以比较两组:
ids = [123, 321, 111, 333]
follow_num = [111, 222]
matches = list(set(ids) & set(follow_num))
print(matches)
# [111]
print(bool(matches))
# True
TA贡献1812条经验 获得超5个赞
您必须遍历中的每个值ids并检查 中是否any存在这些值follow_num。使用any与发电机的理解:
if any(i in follow_num for i in ids):
print(ids)
输出:
[123,321,111,333]
编辑:
如果要打印任何匹配项any()不起作用,则必须使用 for 循环,因为any()计算整个列表。例子:
for i in ids:
if i in follow_num: print(i)
需要注意的是,你可以通过将加快这两项操作follow_num事先到set()做follow_num = set(follow_num)。这是更快,因为set有一个O(1)在运行,较列出了计算in中O(N)。
TA贡献1815条经验 获得超13个赞
>>> ids = [123,321,111,333]
>>> follow_num = [111, 222]
>>> if set(ids).intersection(follow_num):
... print(ids)
...
[123, 321, 111, 333]
添加回答
举报