如何按原有顺序合并两个Python列表并指定格式输出
解决方案
方法一:直接遍历并输出(最简洁)
不需要单独生成两个列表,直接遍历目标华氏温度范围,同时计算对应摄氏温度并按格式输出:
# 遍历20到80的华氏温度,步长为5 for fahrenheit in range(20, 81, 5): # 计算摄氏温度并保留两位小数 celsius = round(5/9 * (fahrenheit - 32), 2) # 格式化输出每行内容,确保温度都显示两位小数 print(f"{celsius:.2f} Celsius or {fahrenheit:.2f} Fahrenheit")
方法二:用列表配对输出(保留列表生成逻辑)
如果想保留生成列表的思路,需要确保两个列表的元素一一对应,再通过zip配对输出:
# 生成华氏温度列表 tf_list = list(range(20, 81, 5)) # 生成对应的摄氏温度列表(保留两位小数) tc_list = [round(5/9 * (f - 32), 2) for f in tf_list] # 配对两个列表的元素,逐行输出 for c, f in zip(tc_list, tf_list): print(f"{c:.2f} Celsius or {f:.2f} Fahrenheit")
原代码的问题说明
- 变量名冲突:原代码中
Tc = [str(Tc)+" Celsius" for Tc in Tc]用Tc作为循环变量,会覆盖原列表变量,导致逻辑混乱,应替换为其他变量名(比如v)。 - 华氏温度生成冗余:
Tf=[Tf+5 for Tf in range(15,81,5)]属于绕路写法,直接用range(20,81,5)就能得到目标华氏温度值。 - 未配对输出:原代码是分别打印两个列表内容,没有将对应温度一一配对,所以输出是分开的,不符合需求格式。
- 拼写错误:原代码中将
Fahrenheit写成了Farenheit,需要修正。
内容的提问来源于stack exchange,提问作者Rushan Zigangirov
相关产品推荐
相关产品推荐

