[英]Ordering of python set from NumPy array
我無法弄清楚為什么我從NumPy數組中創建一個集合,Python交換了元素的順序:
import numpy as np
A = np.array([2])
B = np.array([2, 8])
setA = set(A)
setB = set(B)
In [6]: A
Out[6]: [2]
In [7]: B
Out[7]: [2, 8]
In [8]: setA
Out[8]: set([2])
In [9]: setB
Out[9]: set([8, 2])
In [10]: list(setA.union(setB))
Out[10]: [8, 2]
In [11]: np.union1d(A,B).tolist()
Out[11]: [2, 8]
為什么創建set(B)
時訂單不會被維護?
根據定義, set
s沒有順序 - 而是創建它們以便優化某些操作,例如那些測試包含的操作。 因此,在創建/添加元素集時,不應該依賴於訂單保留。
集合是唯一元素的無序集合 ,因此set([2,8])和set([8,2])完全相同。 你為什么在乎? 也許一套不是你需要的......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.