2015-09-12 83 views
-2

我有三個列表:如何在python中創建三種類型的列表的嵌套列表?

EX_Num = [1.0, 2.0, 3.0] 
Height_str = ['tall', 'medium', 'short'] 
total_carbon = [8.425169446611104, 8.917085904771866, 6.174348482965436] 

我如何做一個嵌套列表,其中column1 = EX_Numcolumn2 = Height_strcolumn3 = total_carbon

+2

用什麼語言?請閱讀[如何創建最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)和[我如何提出一個好問題?](http://stackoverflow.com/help/如何對問)。 –

+0

這個問題目前還不清楚,但如果你確實使用python,分號是不必要的,不應該使用。我假設列表3末尾的時間段是一個類型o,但如果不是,則會出現語法錯誤。 – jdf

回答

0

目前還不清楚你在問什麼......但如果你只是想要一個列表清單,只需追加它們即可。

>>> nested_list.append(EX_Num) 
>>> nested_list.append(Height_str) 
>>> nested_list.append(total_carbon) 
>>> nested_list 
[[1.0, 2.0, 3.0], ['tall', 'medium', 'short'], [8.425169446611104, 8.917085904771866, 6.174348482965436]] 

如果要將所有值放入一個列表中,只需將它們連接起來即可。

>>> nested_list = EX_Num + Height_str + total_carbon 
>>> nested_list 
[1.0, 2.0, 3.0, 'tall', 'medium', 'short', 8.425169446611104, 8.917085904771866, 6.174348482965436] 

如果你需要不同的東西,你需要讓你的問題更清楚]

編輯基於評論:

如果你知道所有的列表的長度相同:

nested_list = [] 
# be careful, if the lists aren't all the same length, you will get errors 
for x in range(len(EX_Num)): 
    tmp = [EX_Num[x], Height_str[x], total_carbon[x]] 
    nested_list.append(tmp) 
+0

@ jdLemon,謝謝你的回答。謝謝,我沒有把我的問題弄清楚。我想做出如下最終名單:[[1.0,'tall',8.425169446611104,],[2.0,'medium',8.917085904771866],[3.0,'short',6.174348482965436]]。 –

+0

我編輯了我的答案。你應該編輯你的問題,以反映你正在尋找的答案,就像你在評論中發佈的一樣。 – jdf

+0

@jdfLemon不使用'for'循環來配對; 'zip'爲你做。 – tzaman

0

您可以使用內置的zip函數將多個迭代元素連接在一起形成元組:

ex = [1.0, 2.0, 3.0] 
height = ['tall', 'medium', 'short'] 
total_carbon = [8.4, 8.9, 6.1] 

joint = zip(ex, height, total_carbon) 
print(joint) 

# [(1.0, 'tall', 8.4), (2.0, 'medium', 8.9), (3.0, 'short', 6.1)] 

注: - 像Python這樣的動態語言,他們只是雜亂,專門請不要使用「匈牙利命名法」爲您的變量名(_num_str等)。


如果您需要將相關數據組合在一起,那麼爲它創建一個簡單的容器類型更具可讀性。 namedtuple這是偉大的:

from collections import namedtuple 
Thing = namedtuple('Thing', ['ex', 'height', 'total_carbon']) 
my_things = [Thing(*t) for t in zip(ex, height, total_carbon)] 

現在,你可以參考的東西的名字 - 例如,my_things[0].height - 而不是需要記住每個屬性的索引位置。