Javascript Map()的Python等效函数是什么



我正在为下面的javascript代码搜索与python等效的代码/函数。

let nameSetFlagMap = new Map();

有序字典

from collections import OrderedDict
nameSetFlagMap = OrderedDict()
nameSetFlagMap["a"] = "a"
nameSetFlagMap["b"] = "b"

您要查找的是Dictionary。

nameSetFlagMap={}
#or
nameSetFlagMap=dict()

你可以在这里了解更多关于

以上两个答案都是错误的,因为它们的行为与js 中的Map((不同


from collections import OrderedDict
asd = OrderedDict()
asd2 = []
asd[asd2] = 123
asd2.append(444)
print(asd)
print(asd[asd2])

输出:

Traceback (most recent call last):
File "/home/nikel/asd.py", line 10, in <module>
asd[asd2] = 123
TypeError: unhashable type: 'list'
from collections import OrderedDict
asd = OrderedDict()
asd2 = {}
asd[asd2] = 123
asd2.append(444)
print(asd)
print(asd[asd2])

输出:

Traceback (most recent call last):
File "/home/nikel/asd.py", line 10, in <module>
asd[asd2] = 123
TypeError: unhashable type: 'list'

test_map = new Map()
test_map[555] = 666
list1 = []
list2 = [123]
list3 = []
test_map.set(list1, 'list1')
test_map.set(list2, 'list2')
test_map.set(list3, 'list3')
list2.push(4442)
console.log(test_map)
console.log(test_map.get(list1))
console.log(test_map.get(list2))
console.log(test_map.get(list3))

输出:

Map(3) {
[] => 'list1',
[ 123, 4442 ] => 'list2',
[] => 'list3',
'555': 666
}
list1
list2
list3

我目前也在搜索模拟,所以我会在找到它后更新。

但根据这个答案,这似乎是不可能的。

最新更新