2016-04-24 177 views
2

我的任務是使用存儲華氏溫度和等效攝氏溫度的二維列表創建表格。使用以下範圍的華氏溫度: -10到100,以10爲增量。因此,溫度將爲: -10,0,10,20,30,40,50 ...等等。使用循環將元素放置在二維列表中 - Python

這是到目前爲止我的代碼....

fList = [] 
cList = [] 
fToCList = [] 


for i in range(-10,101,10): #Fahrenheit range 
    fList.append(i) 
for t in fList: 
    c = (t - 32) * 5/9 #Celsius conversion 
    cList.append(c) 
fToCList.append(fList) 
fToCList.append(cList) 
print("Fahrenheit to Celsius Conversions:") 
print(fToCList) 

我知道這在技術上做什麼的分配是問,但我想這樣做反而是創建一個具有12行的二維表每列有2列,[0] [0] =華氏數和[0] [1] =攝氏數......等等。

注:我只應該在這個項目中使用循環和列表。我試圖不導入任何東西。

回答

0

考慮下面的代碼:

def f2c(t): 
    """Convert degrees Fahrenheit to Celsius.""" 
    return (t - 32) * 5/9 

temps = [(i, f2c(i)) for i in range(-10, 101, 10)] 

首先,我們創建一個溫度轉換的功能。如果您需要在應用程序中執行其他轉換,該功能可以避免在程序的其他地方重複轉換代碼。

其次,我們用一個list comprehension創建的tuples一個列表,其中第一個元素是華氏度,第二個元素是攝氏轉換。

fToCList = list(zip(fList, cList)) 

遍歷壓縮的對象,你會得到你所需要的二維列表:

+0

這真是棒極了!我只是在範圍(-10,101,10)中做了這個[list((i,f2c(i))),所以它是一個列表而不是一個元組。完善。 非常感謝! – Toasty

0

您可以使用內置的zip()功能組合兩個列表。 zip函數將給定列表中的值逐個取出並放入元組中。
你會得到的輸出是一個元組列表,其中第一個數字是華氏溫度,第二個數字是等於攝氏溫度:

[(-10, -23.333333333333332), (0, -17.77777777777778), (10, -12.222222222222221), (20, -6.666666666666667), (30, -1.1111111111111112), (40, 4.444444444444445), (50, 10.0), (60, 15.555555555555555), (70, 21.11111111111111), (80, 26.666666666666668), (90, 32.22222222222222), (100, 37.77777777777778)]