2015-12-14 59 views
-3

看看下面的代码,并解释它说明:Python:这些都一样吗?

hash = { ’one’ : 1, ’two’ : 2, ’three’ : 3 } 

hash = {’three’: 3, ’two’: 2, ’one’: 1} 
+1

没有说明太多,因为它们都充满了语法错误。 '''不是有效的引号 - 不要使用微软的词来编辑你的代码。 –

回答

0

假设您删除明显的印刷错误,他们不一定是相同的,但他们肯定会区分

也就是说,没有任何操作可以应用于任何版本,以显示元素插入容器的顺序。

0

基本上,您正在创建一个字典,它是一个包含在键值对中的数据结构。您在“:”左侧看到的是关键,您在“:”右侧看到的是该值。 为了让你使用一个关键的特定值:hash[key]

有两条线没有区别,因为当你创建词典,因为键值对是相同的顺序不计。

2
hash = {'one':1,'two':2,'three':3} 
hash = {'three':3,'two':2,'one':1} 

这是散列正确的声明(没有印刷错误)。 为了获得价值,你应该使用hash[key]。 考虑到上述两个哈希值: 如果您输入hash[three],它将返回值3。 输出(3)在上述两个哈希的情况下都保持不变。

哈希与列表不同。在列表中,您可以使用索引/位置来获取值。

a = [1,2,3] 
a = [3,2,1] 

如果您输入a[0],则两种情况下的值都不相同。

但是在散列的情况下,您使用分配的键来访问该值,因此它没有区别。订单无关紧要。这是因为散列函数并不关心位置。它仅在键/值对的基础上工作。

简而言之,两个哈希都是相同的,并且会为特定的键提供相同的输出。

+0

'a = {3,2,1}'在Python中创建一个集合,而不是一个数组。你可能想用一个带方括号的列表来代替:'a = [3,2,1]' –

+0

@MarkusMeskanen 我没有注意到它。编辑它。谢谢了很多。 –

0
>>> hash = {'three':3,'two':2,'one':1} 
>>> hash1 = {'one':1,'two':2,'three':3} 
>>> hash == hash1 
    True 
>>> type(hash) == type(hash1) 
    True 
>>> id(hash) == id(hash1) 
    False 
+0

请考虑解释你的答案。 – Maroun