2014-03-19 119 views
0
a = 1 
b = 2 

我想插入A:B到一个空白的Python列表如何将一个键值对插入python列表中?

list = [] 

a:b 

究竟是什么的正确语法,导致

[(a:b), (c:d)] 

这只是这样我就可以在列表中值从最小到最大再整理

+2

没有“键值对”作为作为字典此键/值数据是最好的存储,像这样一般的东西在Python中。你为什么用列表而不是字典?字典包含键值对,但有一个键值对,这不是在字典中没有内置的概念。 – BrenBarn

+1

请向我们展示预期的输出。 – thefourtheye

+1

你想使用键来查询列表吗?如果是这样,请使用@BrenBarn建议的字典。否则,你可以在2元组添加到列表中,如果你只是想保存 “项目配对”:'my_list = [( 'A', 'B'),( 'C', 'd')]' –

回答

0

让我们假设你的数据是这样的:

a: 15 
c: 10 
b: 2 

有几种方式可以让您的数据进行排序。如果数据存储为元组的列表

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

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] 
2

怎样才能插入一个关键值对到一个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)] 

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

some_dict = {} 
some_dict[a] = b 
some_dict[3] = 4 
print some_dict 
>>> {1: 2, 3: 4} 

注:

  • 使用字典之前,您应该阅读Python文档,一些教程或一些书,让您得到完整的概念。
  • 不要叫你的列表为list,因为它会隐藏其内置的实现。将它命名为别的东西,像some_listL,...
相关问题