使用循环将元素放在二维列表中 - Python

时间:2016-04-24 16:58:45

标签: python

我的任务是使用二维列表创建一个表,该列表存储华氏温度和等效的摄氏温度。使用以下范围的华氏温度: -10到100,增量为10.因此,温度将为: -10,0,10,20,30,40,50 ......等等。

到目前为止,这是我的代码......

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] =摄氏数......等等。

注意:我只应该在这个项目中使用循环和列表。我试图不进口任何东西。

2 个答案:

答案 0 :(得分: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列表,其中第一个元素是华氏度,第二个元素是摄氏转换。

答案 1 :(得分:0)

您可以使用内置的zip()功能组合两个列表:

fToCList = list(zip(fList, cList))

迭代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)]