當我做這樣的事情:是否將列表轉換爲集會更改元素的順序?
U = [(1.0, 0.0), (0.0, 1.0)]
set(U)
它給我:
{(0.0, 1.0), (1.0, 0.0)}
我只想列表轉換成一組。任何幫助?
謝謝
當我做這樣的事情:是否將列表轉換爲集會更改元素的順序?
U = [(1.0, 0.0), (0.0, 1.0)]
set(U)
它給我:
{(0.0, 1.0), (1.0, 0.0)}
我只想列表轉換成一組。任何幫助?
謝謝
套件沒有訂購。字典也沒有訂購。如果你想保留一個特定的訂單,然後使用一個列表。
>>> ''.join(set("abcdefg"))
'acbedgf'
>>> ''.join(set("gfedcba"))
'acbedgf'
>>> ''.join(set("1234567"))
'1325476'
>>> ''.join(set("7654321"))
'1325476'
顯然,當你遍歷一組一些種爲了有出來。但是這個順序是一個你無法指定的任意順序。
這裏是我最喜歡的:
>>> {'apple', 'banana'}
{'banana', 'apple'}
>>> {'banana', 'apple'}
{'apple', 'banana'}
順序由哈希衝突的影響,所以它不僅依賴於集的內容,但插入的太順序。但你無法控制訂單。
我認爲讓OP感到困惑的是他們認爲元組內部元素的順序已經重新排列(因爲這兩個元組是對稱的)。你可能想解釋一下。 – jurgenreza 2013-04-04 00:14:11
@jurgenreza:你知道,向OP解釋事情要比爲了讓他們解釋它而隨意亂搞其他人更有效率。無論如何,我認爲你是對的。 – 2013-04-04 00:15:30
耶穌!我的意思是沒有冒犯,我認爲,因爲你的答案是完整的,你可能想要添加一條線。真是一種態度! – jurgenreza 2013-04-04 00:18:13
我認爲令你困惑的是元組的對稱性。將列表轉換爲集不會影響元組中項目的排列,而不會影響元組的順序。那是因爲集合本質上是無序的。這是另一個非對稱元組的例子。
>>> U = [(2.0, 0.0), (0.0, 1.0)]
>>> set(U)
{(0.0, 1.0), (2.0, 0.0)}
這是一個元組列表。 – squiguy 2013-04-03 23:58:51
通過「改變序列」,你的意思是「改變順序」?集合沒有訂單,它們顯示和/或迭代的順序完全是任意的。 – DSM 2013-04-04 00:00:17
'集合'本質上是無序的。 – FatalError 2013-04-04 00:00:23