Python 根据条件将嵌套列表中的值替换为另一个嵌套列表中的值

Python 根据条件将嵌套列表中的值替换为另一个嵌套列表中的值,python,list,Python,List,我有两份清单: l = [ ['0.064', 'facebook', '0'], ['0.019', 'twitt', '0'], ['0.018', 'netzwerk', '0'], ['0.016', 'nachricht', '0'], ['0.015', 'youtub', '0'] ] 正如您所看到的,列表l中索引[1]处的条目是茎,我想用列表fl中的值替换它们 因此,如果列表l和fl中索引[1]处的两个条目,

我有两份清单:

l = [
     ['0.064', 'facebook', '0'],  
     ['0.019', 'twitt', '0'], 
     ['0.018', 'netzwerk', '0'], 
     ['0.016', 'nachricht', '0'], 
     ['0.015', 'youtub', '0']
     ]
正如您所看到的,列表
l
中索引
[1]
处的条目是茎,我想用列表
fl
中的值替换它们

因此,如果列表
l
fl
中索引
[1]
处的两个条目,那么我想将
l
中索引
[1]
处的条目替换为
fl
中索引
[0]
处的条目

预期结果:

keys = [
     ['0.064', 'facebook', '0'],  
     ['0.019', 'twitter', '0'], 
     ['0.018', 'netzwerk', '0'], 
     ['0.016', 'nachrichten', '0'], 
     ['0.015', 'youtube', '0']
     ]
我试过这样的方法:

keys =[]
for l in l:
    for i in fl:
        if l[1] == i[1]:
            i[1].replace(i[1], l[0])
            keys.append(i)
但这是行不通的


有人能帮忙吗?

您的第二个列表最好转换成字典,并利用
O(1)
查找:

l = [
     ['0.064', 'facebook', '0'],  
     ['0.019', 'twitt', '0'], 
     ['0.018', 'netzwerk', '0'], 
     ['0.016', 'nachricht', '0'], 
     ['0.015', 'youtub', '0']
]

fl = [
     ['twitter', 'twitt', 1], 
     ['youtube', 'youtub', 2], 
     ['nachrichten', 'nachricht', 4]
]

d = dict((x[1], x[0]) for x in fl)
keys = [[x[0], d.get(x[1], x[1]), x[2]] for x in l]

print(keys)

您的第二个列表最好转换为字典,并利用
O(1)
lookup:

l = [
     ['0.064', 'facebook', '0'],  
     ['0.019', 'twitt', '0'], 
     ['0.018', 'netzwerk', '0'], 
     ['0.016', 'nachricht', '0'], 
     ['0.015', 'youtub', '0']
]

fl = [
     ['twitter', 'twitt', 1], 
     ['youtube', 'youtub', 2], 
     ['nachrichten', 'nachricht', 4]
]

d = dict((x[1], x[0]) for x in fl)
keys = [[x[0], d.get(x[1], x[1]), x[2]] for x in l]

print(keys)

您开始的数据结构错误。
fl
中每个子列表中第三个元素的相关性是什么?嘿,奥斯汀,它们是我用于groupby语句的字数。您开始的数据结构错误。
fl
中每个子列表中第三个元素的相关性是什么?嘿,奥斯汀,它们是我在groupby语句中使用的字数。