2012-07-13 63 views
0

我在Python中有三個列表。比方說:在Python中使用元組?

list_a 
list_b 
list_c 

現在我正在調用一個方法,它也返回一個列表並保存到上面的列表中。 例如:

list_a = get_value(1) 
list_b = get_value(2) 
list_c = get_value(3) 

我想我選擇調用不同參數的方法相同的方式是不是一個好的選擇。我們可以在一條線內調用這些方法嗎?

我是Python初學者,但是元組選項呢?

+2

注意,線'list_a =的get_value(1)'不 「保存返回值到上述列表」。您需要使用'list_a [:] = get_value(1)'來代替。 – 2012-07-13 12:01:31

回答

3

列表的列表?

ll = [get_value(x) for x in (1, 2, 3)] 

或與您的三個列表:

list_a, list_b, list_c = [get_value(x) for x in (1, 2, 3)] 

考慮到,那get_value不能被修改,並只返回一個列表。

另一種可能性是字典。

params = {'a': 1, 'b': 2, 'c': 3} 
result = {k:get_value(v) for k,v in params.iteritems()} 
# result == {'a': get_value(1), 'b': get_value(2), 'c': get_value(3)} 
+0

+1不錯(我正要建議拆包到3個變量) – Levon 2012-07-13 11:50:47

+0

你甚至可以用一臺發電機這一點,不知道它實際上是對大型數據集的效率更高。 – jamylak 2012-07-13 11:53:28

3

如果成立,你的正常工作(即修改爲返回相同數量的列表,你在發送參數),你可以有一個看起來像這樣的電話:

list_a, list_b, list_c = get_value(1, 2, 3) 

其中get_value()會返回一個元組的3個值。

這是你在問什麼?

2

的另一種方法:

list_a, list_b, list_c = map(get_value, (1,2,3))