2017-04-12 71 views
0

我正在使用Python程序列表中,以下的是代碼列表輸出無序蟒

x = [['Port', 'Status']] 
x.append({11,'Open'}) 
x.append({22,'Close'}) 
x.append({356,'Open'}) 
x.append({1024,'Close'}) 
x.append({512,'Open'}) 
x.append({777,'Close'}) 
print(x) 

的上述輸出是

[['Port', 'Status'], set([11, 'Open']), set(['Close', 22]), set(['Open', 356]), set([1024, 'Close']) 
, set([512, 'Open']), set([777, 'Close'])] 

問題是,輸出不處於順序它進入了。在某些情況下,串即是在其他情況下,整數反之亦然出庭。請幫忙。

+0

從[\ [Python的\]:集定義](https://docs.python.org/2/library/stdtypes.html#set-types-set-frozenset):_A組對象是**無序**收集獨特的可排列對象_。爲了保持這個順序使用*列表* S(如你的頭做 - 1個元素),或*元組* s,而不是*集* S。 – CristiFati

回答

0

一組是一個無序的集合,沒有重複的元素

for example: 
    >> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} 
    >> print(basket)   # see that duplicates have been removed 
    >> {'orange', 'banana', 'pear', 'apple'} 

you can see that order has changed. 

要附加{11,「開放」}被設置,並且可以在運行時更改訂單。所以更好地利用有序數據結構,如果你想維持秩序。

for example use like this: 
>> x.append((11, 'Open')) 
or 
>> x.append([11, 'Open']) 
1

組是無序的,則可以使用tuplelist或代替:

x = [['Port', 'Status']] 
x.append((11,'Open')) 
0

只需使用[]代替{}如jyotish暗示。

0

你使用一組作爲值,沒有一個固定的順序的容器。您可以使用元組(例如(11, 'Open'))或其他列表(例如[11, 'Open']),而使用元組(例如(11, 'Open'))或另一個列表(例如[11, 'Open'])。但是一個元組可能是一個更好的匹配。