如何将键值对插入python列表?

man*_*ngo 11 python list

a = 1
b = 2 
Run Code Online (Sandbox Code Playgroud)

我想在一个空白的python列表中插入一个:b

list = []
Run Code Online (Sandbox Code Playgroud)

a:b
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法,导致

[(a:b), (c:d)]
Run Code Online (Sandbox Code Playgroud)

这只是为了我可以按照从最小到最大的值对列表进行排序

dwu*_*urf 13

我们假设您的数据如下所示:

a: 15
c: 10
b: 2
Run Code Online (Sandbox Code Playgroud)

有几种方法可以对数据进行排序.这个键/值数据最好存储为字典,如下所示:

data = {
    'a': 15,
    'c': 10,
    'b': 2,
}
# Sort by key:
print [v for (k, v) in sorted(data.iteritems())]
# Output: [15, 2, 10]
# Keys, sorted by value:
from operator import itemgetter
print [k for (k, v) in sorted(data.iteritems(), key = itemgetter(1))]
# Output: ['b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)

如果将数据存储为元组列表:

data = [
    ('a', 15),
    ('c', 10),
    ('b', 2),
]
data.sort() # Sorts the list in-place
print data
# Output: [('a', 15), ('b', 2), ('c', 10)]
print [x[1] for x in data]
# Output [15, 2, 10]
# Sort by value:
from operator import itemgetter
data = sorted(data, key = itemgetter(1))
print data
# Output [('b', 2), ('c', 10), ('a', 15)]
print [x[1] for x in data]
# Output [2, 10, 15]
Run Code Online (Sandbox Code Playgroud)


Chr*_*ian 9

如何将键值对插入python列表?

你不能.你可以做的是通过在列表中附加2个元素的元组来"模仿"这个:

a = 1
b = 2
some_list = []
some_list.append((a, b))
some_list.append((3, 4))
print some_list
>>> [(1, 2), (3, 4)]
Run Code Online (Sandbox Code Playgroud)

但正确/最好的方法是使用字典:

some_dict = {}
some_dict[a] = b
some_dict[3] = 4
print some_dict
>>> {1: 2, 3: 4}
Run Code Online (Sandbox Code Playgroud)

注意:

  • 在使用字典之前,您应该阅读Python文档,一些教程或一些书籍,这样您就可以获得完整的概念.
  • 不要将列表称为list,因为它将隐藏其内置实现.将它命名为别的东西,像some_list,L...