You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将方向与街道输入分存两个列表并生成返程路线列表?

需求场景

小孩拿到从家到学校的路线纸条,弄丢了返程路线,需要编写程序生成返程路线。
示例输入路线:

R
JOHN
L
KING
L
SCHOOL

需输出返程路线:

R KING
R JOHN
L HOME
现有代码
directions = ['HOME']

while True:
    d = input('DIRECTION (L or R): ').upper()
    s = input('STREET: ').upper()
    directions.append(d)
    if s == 'SCHOOL':
        break
    directions.append(s)

new_directions = []

for item in reversed(directions):
    if item == 'L':
        new_directions.append('R')
    elif item == 'R':
        new_directions.append('L')
    else:
        new_directions.append(item)

for item in new_directions:
    print(item)
问题

现有代码未使用4个列表,老师要求先将输入分别存入两个列表——方向列表(如['R','L','L'])和街道列表(如['JOHN','KING','SCHOOL']),但不知道如何将分行输入的方向和街道分别存入对应列表,之后还需操作这两个列表生成返程的方向和街道列表,求实现方法。


解决方案

核心思路

  1. 分离输入存储:循环读取方向和街道,分别存入两个独立列表;
  2. 生成返程数据:反转原方向列表并互换L/R,反转原街道列表并替换终点为HOME;
  3. 配对输出:将返程方向与返程街道逐行配对打印。

实现代码

# 初始化两个列表,分别存储输入的方向和街道
direction_list = []
street_list = []

# 循环读取输入,直到街道为SCHOOL时停止
while True:
    d = input().strip().upper()
    s = input().strip().upper()
    direction_list.append(d)
    street_list.append(s)
    if s == 'SCHOOL':
        break

# 生成返程方向列表:反转原方向,同时互换L和R
reverse_directions = []
for dir in reversed(direction_list):
    reverse_directions.append('R' if dir == 'L' else 'L')

# 生成返程街道列表:反转原街道,去掉原终点SCHOOL,追加HOME
reverse_streets = list(reversed(street_list))
reverse_streets.pop(0)  # 移除反转后的第一个元素(即原输入的SCHOOL)
reverse_streets.append('HOME')

# 逐行打印返程路线
for dir, street in zip(reverse_directions, reverse_streets):
    print(f"{dir} {street}")

测试验证

用示例输入测试时,程序会输出符合要求的返程路线:

R KING
R JOHN
L HOME

内容的提问来源于stack exchange,提问作者kora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:01:03