python - 在 Python 的 2 个列表中查找第一个匹配项
问题描述
我在执行此操作时遇到了麻烦,我想做一个执行此操作的函数:我有 2 个列表:list1 = [8,6,0] and list2 = [6,0]
。我想保持 2 个列表之间的第一个值相同(此处为 6 个)。就像我有 list1 = [a,b,c] 和 list2 = [b,c]。我只想保留价值b。我已经尝试过这个:
def listFirstValue (list1,list2) :
for x in list1 :
for y in list2 :
if x == y :
break
break
return a
谢谢您的答复。
解决方案
我将使用生成器理解来执行此操作,next
以检索其中list1
包含的第一个元素list2
:
list1 = [8,6,0]
list2 = set([6,0])
next(i for i in list1 if i in list2)
# 6
更安全一点,避免在不包含任何元素的情况下出现错误list1
:
next((i for i in list1 if i in list2), None)
推荐阅读
- php - Laravel:如何从控制器调用模型中的方法
- ios - 我写的由 GCD 代码支持的读写器锁导致并行测试死锁
- go - Vulkan 实例层返回 VK_ERROR_LAYER_NOT_PRESENT 尽管在枚举层属性时出现?
- php - 如何以字符串“text”作为键值打印出(at 的值)json 对象的索引?
- javascript - 如何将新排序的数组的排序和数组以及 setValues 重新排序到我的电子表格中?
- c# - 通过仅显示特定字段来格式化 JSON 输出
- python - 如何在方括号中查找文本
- c++ - 最近的字符串:查找字符串数组中 2 个字符串之间的最小距离
- mysql - 是否可以以转置格式从表中检索数据
- javascript - 如何检查选定的动态表单输入是否符合某些条件