拿 set() 來列舉實體,不保證每次列舉,都會得到相同序列 - tsungjung411/python-study GitHub Wiki

第一次測試:

程式碼

my_set = set(['A','B', 'C', 'D', 'E'])
my_list = list(my_set)
print('my_set:', my_set)
print('my_list:', my_list)

執行結果

my_set: {'D', 'B', 'A', 'C', 'E'}
my_list: ['D', 'B', 'A', 'C', 'E']

第二次測試:

程式碼

同上

執行結果,沒變

my_set: {'D', 'B', 'A', 'C', 'E'}
my_list: ['D', 'B', 'A', 'C', 'E']

重啟python,第三次測試:

程式碼

同上

執行結果,不一樣了!!

my_set: {'A', 'E', 'B', 'D', 'C'}
my_list: ['A', 'E', 'B', 'D', 'C']

每次重啟 Python,都會得到不一樣的結果


接續上面,變更字串記憶體位址

程式碼

my_set = set(['AAAAA'[0],'BBBBB'[1], 'CCCCC'[2], 'DDDDD'[3], 'EEEEE'[4]])
my_list = list(my_set)
print('my_set:', my_set)
print('my_list:', my_list)

執行結果,仍同第三次執行結果!!

my_set: {'A', 'E', 'B', 'D', 'C'}
my_list: ['A', 'E', 'B', 'D', 'C']

接續上面,變更字串記憶體位址

程式碼

my_set = set(['AAAAA'[0:2],'BBBBB'[1], 'CCCCC'[2], 'DDDDD'[3], 'EEEEE'[4]])
my_list = list(my_set)
print('my_set:', my_set)
print('my_list:', my_list)

執行結果,仍同第三次執行結果!!

my_set: {'C', 'AA', 'B', 'D', 'E'}
my_list: ['C', 'AA', 'B', 'D', 'E']

其他字母 'B', 'C', 'D', 'E' 順序又變了