Python:如何调整双列表for循环比较结果的打印顺序?
调整随机列表生成与比较结果的输出顺序
你的问题是生成列表时就直接打印了比较结果,导致输出顺序和期望不符。只需要把列表生成和比较打印的步骤分开,就能解决问题:
原代码问题点
原代码在循环生成列表元素的同时就打印了比较结果,导致列表还没输出就先展示了对比信息,顺序颠倒。
修改后的代码
import random lst1 = [] lst2 = [] n = int(input('Step a: How many numbers in each list? ')) # 第一步:仅生成两个随机整数列表 for i in range(n): number1 = random.randint(1, 15) number2 = random.randint(1, 15) lst1.append(number1) lst2.append(number2) # 第二步:先输出两个完整列表 print(f'Step b: First List{lst1}') print(f'Step c: Second List{lst2}') print('Step d:') print('Larger number in each comparison:') # 第三步:遍历列表,逐个比较并打印结果 count = 0 # 可选:统计First List获胜次数 for num1, num2 in zip(lst1, lst2): if num1 > num2: count += 1 print(f'{num1} : First List') else: print(f'{num2} : Second List') # 可选:打印统计结果 # print(f'First List won {count} times')
修改说明
- 拆分逻辑:把列表生成和比较打印分成两个独立阶段,先完成列表构建,再输出列表,最后做对比展示
- 简化遍历:用
zip(lst1, lst2)直接配对两个列表的对应元素,比通过索引取值更简洁易读 - 修复统计:把
count变量移到循环外初始化,避免每次循环重置,能正确统计获胜次数(不需要可直接删除相关代码)
修改后输出示例
Step a: How many numbers in each list? 5 Step b: First List[12, 14, 14, 15, 4] Step c: Second List[5, 2, 8, 13, 5] Step d: Larger number in each comparison: 12 : First List 14 : First List 14 : First List 15 : First List 5 : Second List
内容的提问来源于stack exchange,提问作者PaPa_Josh
相关产品推荐
相关产品推荐

