我的任务是使用二维列表创建一个表,该列表存储华氏温度和等效的摄氏温度。使用以下范围的华氏温度: -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] =摄氏数......等等。
注意:我只应该在这个项目中使用循环和列表。我试图不进口任何东西。
答案 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)]