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

如何根据用户输入值对Python字典循环重排并输出第4项?

实现Python字典按指定行星循环重排并输出第4项

需求说明

现有一个键为1到6的字典,值是固定顺序的行星:

a = {'1':'saturn', '2':'venus', '3':'mars', '4':'jupiter', '5':'rahu', '6':'ketu'}

当用户输入某个行星(比如rahu)时,需要把该行星作为新字典1号键的值,之后依次跟随原字典中该行星之后的所有值,到末尾就从开头继续循环,最终输出新字典第4项的值。比如输入rahu后,新字典是:

{'1':'rahu', '2':'ketu', '3':'saturn', '4':'venus', '5':'mars', '6':'jupiter'}

此时第4项输出venus。

实现步骤

  1. 提取原字典的有序值列表:Python 3.7+的字典会保留插入顺序,直接用list(a.values())就能得到原顺序的行星列表:['saturn', 'venus', 'mars', 'jupiter', 'rahu', 'ketu']。
  2. 定位目标行星的索引:用列表的index()方法找到输入行星在原列表中的位置。
  3. 生成循环重排序列:从目标索引截取到列表末尾,再拼接列表开头到目标索引的部分,形成循环后的新序列。
  4. 构建新字典:把新序列的元素依次映射到1到6的字符串键上。
  5. 输出第4项:直接取新字典中键为'4'的值。

完整代码

# 原字典
a = {'1':'saturn', '2':'venus', '3':'mars', '4':'jupiter', '5':'rahu', '6':'ketu'}
# 获取用户输入
planet = input('Enter planet : ')

# 处理输入不存在的情况
original_planets = list(a.values())
if planet not in original_planets:
    print('输入的行星不存在,请重新输入')
else:
    # 找到目标行星的起始索引
    start_idx = original_planets.index(planet)
    # 生成重排后的行星列表
    reordered_planets = original_planets[start_idx:] + original_planets[:start_idx]
    # 构建新字典
    new_dict = {str(i+1): reordered_planets[i] for i in range(len(reordered_planets))}
    
    # 输出第4项
    print('4th entry is : ')
    print(new_dict['4'])

验证示例

当输入rahu时:

  • 原列表中rahu的索引是4
  • 重排后的列表为['rahu', 'ketu', 'saturn', 'venus', 'mars', 'jupiter']
  • 新字典的'4'对应值为venus,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:50:20