python - 列表中的组合更新和替换

标签 python list for-loop replace

所以我有两个列表。一个里面有所有的类别,另一个只有需要审核的类别。

List_one = ('数学', '英语', '科学')

List_two = ('Maths:2', 'Science:4')

我想要一份完整的列表,如下所示:

List_three = ('数学:2', '英语', '科学:4')

任何帮助将不胜感激!

最佳答案

您可以通过创建中间 dict 来提高性能,以便在执行替换时执行恒定时间查找。

dict_two = {x.split(':')[0] : x for x in List_two}

out = [dict_two.get(x, x) for x in List_one]
print(out) 
['Maths:2', 'English', 'Science:4']

使用dict.get,可以在O(n)时间复杂度内替换列表元素,同时避免KeyError .

关于python - 列表中的组合更新和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46113190/

相关文章:

python - Scipy.Optimise Curve_fit 的指数拟合不起作用

r - 计算每个唯一元素在列表中出现的次数

for-loop - 在 torch7 中初始化张量的快速方法

mysql - 如何使用 for 循环将新字段添加到文档索引 Lucene 中。

python - 基于db将变量传递给模板

python - 将由键值对字符串表示的图转换为字典。 Python

Python 3.x - 在将项目附加到列表之前运行函数

c# - 找出列表中的重复值

C - 使用指针创建更高效​​的循环来遍历字母表

python - 带有 json.dump 的 JSON 对象之间的逗号分隔符