python - 如何根据第一个列表的第一项和第二项比较两个不相等的嵌套列表并获取值或假

标签 python list

我是 python 的新手,我正在尝试根据列表的前两个值比较两个嵌套列表。如果值彼此匹配,那么我想将第二个列表的第三个值作为输出:

例如:

list_1 =[[600,700], [500,200], [100,250], [300,100]]
list_2 = [[600,700,"A"], [500,600,"B"], [100,250,"C"]]

我想得到:

list_new = ["A", false, "C", false]

我想以 list_2 的前两个值作为条件来遍历 list_1。如果值匹配,我希望输出是 list_2 的第三个值,否则为 false。

我的想法(背后的逻辑):

for i in list_2
for m in list_1

if i[0]==m[0] and i[1]==m[1], then give me i[2]
else false

如果能得到一些帮助就太好了!

最佳答案

itertools.zip_longest功能:

import itertools

list_1 =[[600,700], [500,200], [100,250], [300,100]]
list_2 = [[600,700,"A"], [500,600,"B"], [100,250,"C"]]
res = [l2[2] if (l1 and l2 and l1[:2] == l2[:2]) else False
       for l1, l2 in itertools.zip_longest(list_1, list_2)]
print(res)    # ['A', False, 'C', False]

关于python - 如何根据第一个列表的第一项和第二项比较两个不相等的嵌套列表并获取值或假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239914/

相关文章:

Python 程序占用太多内存

list - 将项目添加到不可变的 Seq

python - 当我尝试将 excel 文件转换为列表时,“DataFrame”对象没有属性 'tolist'

python - 在 SQLAlchemy 中使用 selectinload 加载相关对象时的排序顺序

python - 在 for 循环中填充 python 字典返回相同的值

python - 根据公共(public)字符串将列表排序为列表,同时保留整个列表

list - 列出Dart中 map 的AS值

c# - 用于组合字符串的 lambda 列表

python - 异常 : Python. 在 pyinstaller 中找不到运行时

Python 将 void 指针作为参数传递给 C 函数(SWIG、Numpy)