2014-03-19 42 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,...
相關問題