假设我们有map-dict和data-dict:
m = { 1:2, 4:5, 3:7 }
data = { 1:7, 4:1, 3:6 }
我们应该在" data"中替换所有出现的key& val;根据" m" :
data1 = { 2:7, 5:2, 7:6 }
最短,最快的方法是什么?
我正在考虑将数据转换为列表进行替换并转换回dict。但即便如此也是如此。
将列表转换为dict即可:
dict(zip(lst[0::2], lst[1::2]))
将dict转换为list是:
data.items()
但是这个没有返回列表,而是元组列表,它们使得事情太复杂,即我们需要额外压扁这个LoT。
我想知道是否有更好的方法,重点是速度/记忆。
答案 0 :(得分:2)
dict comprehension:
var description: String {
let topDivider = "### STACK ###\n"
let bottomDivider = "\n############\n"
let stackElements = self.array.reversed().map { $0.description }.joined(separator: "\n")
return topDivider + stackElements + bottomDivider
}
请注意,示例中的data1 = {m.get(k, k): m.get(v, v) for k, v in data.items()}
是单个元素。