我是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;
这里有什么区别,他们都做相同的工作,但是有不同的概念?
来自:
在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中不是这样- 字符串和数字(或布尔值)是不同的哈希值。
在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中不是这样- 字符串和数字(或布尔值)是不同的哈希值。