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

发布于 2021-01-29 15:11:47

我是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;

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

关注者
0
被浏览
456
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    来自:

    在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中不是这样-
    字符串和数字(​​或布尔值)是不同的哈希值。

    如果你有兴趣在两种语言之间的差异,然后再看看ANS



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看