除了循环之外还有其他方法可以从任何序列数据(Python)更新字典吗?

时间:2015-07-29 20:06:29

标签: python for-loop dictionary optimization

我有一个代码来更新这样的字典:

c = { }
for i in ID :
    d = {i : V[i]}
    c.update(d)

ID和V都是具有复杂和巨大项目的序列数据,其中ID是列表,V是字典。

python中有没有办法在不使用“for”之类的循环过程的情况下执行该逻辑?

循环过程的使用会在运行时受到很多迭代的影响。

2 个答案:

答案 0 :(得分:3)

不,你无法避免循环,但你可以尝试这些替代方案:

c = { }
for i in ID :
    c[i] = V[i]

c = dict([(i, V[i]) for i in ID])

c = {i: V[i] for i in ID}

答案 1 :(得分:0)

代码的简短方法是:

remove_obj_with_warnings.sh

你也可以使用c.update({i:V[i] for i in ID}) ,但它会迭代

map

它的所有O(n)你可以通过使用上面的符号将它移动到c.update(dict(map(lambda i:(i,V[i]),ID))) 部分而不是Python!