首页 > 解决方案 > 将 LIST A 中的列表项与元组列表 LIST B 中的每个第一个元素进行比较

问题描述

我的问题与这个问题几乎相似 -将列表与元组列表进行比较?但我正在寻找一个解决方案来比较.....

我有

ListA = [2, 1, 1, 1, 1] ListB =[(1, 'Poor'), (2, 'Average'), (3, 'Excellent')]元组列表。

最后,我想生成一个新的元组列表 - LISTC 包含 LIST A 中的所有元素,如下所示

[(2, 'Average'), (1,'Poor'), ( 1, 'Poor') , (1 ,'Poor') , (1, 'Poor')]

我试过这个 -

first_tuple_elements = [element[0] for element in LISTB]
final_list_of_tuples = ()
for i in LISTA:
    for i in first_tuple_elements:
        final_list_of_tuples = [(i, element[1]) for element in LISTB]

print(final_list_of_tuples)

以上没有给我我想要的,请协助

LISTB 是来自数据库查询的结果集,而 LISTA 是计算结果集,然后我需要将其与 LISTB 中的项目进行比较,以便生成

列表[(2, 'Average'), (1,'Poor'), ( 1, 'Poor') , (1 ,'Poor') , (1, 'Poor')]

标签: python-3.xlisttuples

解决方案


首先转换ListB为字典:

ListA = [2, 1, 1, 1, 1]
ListB = [(1, 'Poor'), (2, 'Average'), (3, 'Excellent')]

d = dict(ListB)
ListC = [(v, d[v]) for v in ListA]

print(ListC)

印刷:

[(2, 'Average'), (1, 'Poor'), (1, 'Poor'), (1, 'Poor'), (1, 'Poor')]

推荐阅读