小编典典

Python字典和Javascript对象之间有什么区别?

python

我是python的新手,正在阅读有关Dictionary的文章。从我以前对javascript之类的语言的经验来看,它们对我来说就像对象。词典可以存储列表并与javascript中的对象共享许多相似之处。

前python代码:

menu = {}
menu['Chicken Alfredo'] = 14.50
menu['Italian Pasta'] = 15.89
menu['Shrimp Soup'] = 12.43
menu['Persian Rice'] = 21.99

前javascript代码:

var menu = new Object();
menu['Chicken Alfredo'] = 14.50;
menu['Italian Pasta'] = 15.89;
menu['Shrimp Soup'] = 12.43;
menu['Persian Rice'] = 21.99;

这里有什么区别,他们都做相同的工作,但是有不同的概念?


阅读 311

收藏
2021-01-20

共1个答案

小编典典

来自:

在Python中,字典是映射类型的一种形式。可以使用逗号分隔的名称:值对(用花括号括起来)序列来初始化它们。使用涉及方括号的数组符号访问它们。密钥可以是任何可散列的,包括数字和字符串。

在Javascript中,字典与对象相同。可以使用与Python相同的语法进行初始化。键可以是数字,字符串或标识符。由于字典也是一个对象,因此可以使用数组表示法(例如b
[i])或使用属性表示法(例如egbi)来访问元素。

考虑在初始化程序中使用的标识符,例如

 b = {i:j}

在Python中,i和j均被评估,但在Javascript中,仅j被评估。在Javascript中,您还可以使用标识符i来写点表示法。因此,在Python中,

 i='k'
 j=1
 b = {i:j}
 b['k'] # -> 1

在Javascript中,

 i='k'
 j=1
 b = {i:j}
 b['i'] // -> 1
 b.i // -> 1
 // b[i], b['k'] and b.k are not defined

在Javascript中,在所有情况下都使用点表示法标识符与使用“看起来像”数组表示法标识符的字符串完全相同。因此,b = {‘i’:1}; b
[‘i’] //-> 1 bi //->
1在字典中使用数字或布尔值时,Javascript将使用数字或布尔值的字符串表示形式访问元素。在Python中不是这样-
字符串和数字(​​或布尔值)是不同的哈希值。

2021-01-20