Python Dictionaries与Javascript对象有什么区别?

Abd*_*rah 41 javascript python dictionary object

我是python的新手,我正在阅读有关字典的内容.从我以前使用像javascript这样的语言的经验来看,它们对我来说似乎是对象.字典可以存储列表并在javascript中与对象共享许多相似之处.

ex python代码:

menu = {}
menu['Chicken Alfredo'] = 14.50
menu['Italian Pasta'] = 15.89
menu['Shrimp Soup'] = 12.43
menu['Persian Rice'] = 21.99
Run Code Online (Sandbox Code Playgroud)

前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;
Run Code Online (Sandbox Code Playgroud)

这里有什么不同,他们都做同样的工作,但有不同的概念?

a.m*_*.m. 46

来自:

在Python中,字典是一种映射类型.它们可以使用逗号分隔的name:value对序列进行初始化,用花括号括起来.使用涉及方括号的数组符号访问它们.密钥可以是任何可清除的,包括数字和字符串.

在Javascript中,字典与对象相同.它可以使用与Python相同的语法进行初始化.密钥可以是数字,字符串或标识符.因为字典也是一个对象,所以可以使用数组表示法访问元素,例如b [i],或使用属性表示法,例如

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

 b = {i:j} 
Run Code Online (Sandbox Code Playgroud)

在Python中,i和j都被评估,但在Javascript中,只评估j.在Javascript中,您还有权使用标识符i以点表示法编写.因此在Python中,

 i='k'
 j=1
 b = {i:j}
 b['k'] # -> 1 
Run Code Online (Sandbox Code Playgroud)

在Javascript中,

 i='k'
 j=1
 b = {i:j}
 b['i'] // -> 1
 b.i // -> 1
 // b[i], b['k'] and b.k are not defined 
Run Code Online (Sandbox Code Playgroud)

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

如果您对两种语言之间的差异感兴趣,请查看ans

  • @Jacquot他只是说`b ['k']`将是`1`的值 (3认同)

tec*_*kuz 7

  • Python字典中的键必须是可哈希的(例如,字符串,数字,浮点数等)。

  • 以下是JavaScript中的有效对象:

    const javascriptObject = { name: 'Alexander Pushkin', year: 1799 }
    
    Run Code Online (Sandbox Code Playgroud)

    但是,它将作为Python字典无效:

    python_dictionary = {name: 'Alexander Pushkin', year: 1799}
    
    # Traceback (most recent call last):
    # NameError: name 'name' is not defined
    
    Run Code Online (Sandbox Code Playgroud)

    一个快速的解决方法是将Python词典的键转换为字符串:

    my_dictionary = {'name': 'Alexander Pushkin', 'year': 1799}
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过字典,您可以使用JavaScript创建对象。它们不仅保存数据,还具有许多其他强大的功能,例如构造函数。