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语句中使用的字数。