列表输出乱序python

时间:2017-04-12 10:50:15

标签: python list

我在python程序中使用list,以下是代码

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'])]

问题是输出不是输入的顺序。即在某些情况下,字符串在整数之前出现,反之亦然。请帮忙。

4 个答案:

答案 0 :(得分:1)

设置无序,您可以使用tuplelist代替:

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

答案 1 :(得分: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'])

答案 2 :(得分:0)

简单地使用[]代替{}作为jyotish暗示。

答案 3 :(得分:0)

您正在使用集合作为值的容器,这些值没有固定的顺序。

相反,您可以使用元组(例如(11, 'Open'))或其他列表(例如[11, 'Open'])。但是元组在这里可能是更好的匹配。