python 3列表嵌套元组,条件筛选数据

python 3列表嵌套元组,条件筛选数据,要求在代码块,请大家看看怎么解决该问题?


list1 = [("lily","19","yk","001"),("bob","22","hk","003"),("jack","24","us","009"),("yom","22","tl","098")]#取后2个
list2 = [("a","1","yk","089"),("b","2","kl","005"),("c","3","us","152"),("d","4","tw","192")]#取前2个
#筛选条件,若每个列表中元组第3个元素相等,结果取第1个列表元组前2个元素,第2个列表后2个元素
#??????
res = [("a","1","yk","001"),("c","3","us","009")]
# make dir
dict1 = dict((item[2], item[3]) for item in list1)
# slove problem
res1 = [item[:3] + (dict1[item[2]],) for item in list2 if item[2] in dict1]
print(res1)

img

【以下回答由 GPT 生成】

使用Python 3来筛选嵌套元组的列表数据,可以通过循环遍历两个列表,比较元组的第三个元素是否相等,并选择相应的元素构建新的列表。

以下是实现该功能的代码:

list1 = [('lily','19','yk','001'),('bob','22','hk','003'),('jack','24','us','009'),('yom','22','tl','098')]
list2 = [('a','1','yk','089'),('b','2','kl','005'),('c','3','us','152'),('d','4','tw','192')]

res = []  # 初始化结果列表

for tuple1 in list1:
    for tuple2 in list2:
        if tuple1[2] == tuple2[2]:  # 判断元组的第三个元素是否相等
            new_tuple = tuple2[:2] + tuple1[2:]  # 构建新的元组
            res.append(new_tuple)  # 将新的元组添加到结果列表中
            break  # 找到匹配的元组后跳出内层循环

print(res)

运行上述代码,会输出期望的结果:

[('a', '1', 'yk', '001'), ('c', '3', 'us', '009')]

希望以上解决方案能够满足您的需求,如果有任何疑问,请随时追问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^