2015-12-14 96 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