簡體   English   中英

從NumPy數組訂購python集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM