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

如何将州名列表与电价列表映射实现Python查询功能

问题描述

我有如下定义的州名列表:

state_names = ["Alaska", "Alabama", "Arkansas", "American Samoa", "Arizona", "California", "Colorado",
               "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii",
               "Iowa", "Idaho", "Illinois", "Indiana", "Kansas", "Kentucky", "Louisiana", "Massachusetts",
               "Maryland", "Maine", "Michigan", "Minnesota", "Missouri", "Mississippi", "Montana", "North Carolina",
               "North Dakota", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "Nevada", "New York",
               "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina",
               "South Dakota", "Tennessee", "Texas", "Utah", "Virginia", "Vermont", "Washington",
               "Wisconsin", "West Virginia", "Wyoming"]

以及对应的电价列表:

state_price = [22.75,14.24,11.75,14.77,13.13,25.15,13.83,27.10,13.40,13.69,13.46,41.57,12.09,9.86,15.06,14.70,14.11,12.63,11.98,24.25,14.16,25.36,17.65,13.84,11.54,13.14,11.00,12.26,10.48,11.11,23.16,17.04,13.74,13.89,21.05,13.18,12.38,11.22,14.93,20.26,14.00,12.03,11.94,13.08,10.66,12.84,20.23,10.12,15.37,13.24,11.06]

我希望将每个州名与对应电价映射,实现输入州名后输出类似The price in Alaska is 22.75的结果。目前已完成州名输入处理,但无法关联对应电价,现有代码如下:

user_state=input("What state are you in?: ").title()
print('The current rate in',user_state,'is',kwh,)

请问如何完善代码实现州名与电价的映射查询?

解决方案

1. 创建州名与电价的映射字典

用Python的zip()函数将两个列表的对应元素配对,再转换为字典,这是最直接的键值映射方式:

state_names = ["Alaska", "Alabama", "Arkansas", "American Samoa", "Arizona", "California", "Colorado",
               "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii",
               "Iowa", "Idaho", "Illinois", "Indiana", "Kansas", "Kentucky", "Louisiana", "Massachusetts",
               "Maryland", "Maine", "Michigan", "Minnesota", "Missouri", "Mississippi", "Montana", "North Carolina",
               "North Dakota", "Nebraska", "New Hampshire", "New Jersey", "New Mexico", "Nevada", "New York",
               "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina",
               "South Dakota", "Tennessee", "Texas", "Utah", "Virginia", "Vermont", "Washington",
               "Wisconsin", "West Virginia", "Wyoming"]

state_price = [22.75,14.24,11.75,14.77,13.13,25.15,13.83,27.10,13.40,13.69,13.46,41.57,12.09,9.86,15.06,14.70,14.11,12.63,11.98,24.25,14.16,25.36,17.65,13.84,11.54,13.14,11.00,12.26,10.48,11.11,23.16,17.04,13.74,13.89,21.05,13.18,12.38,11.22,14.93,20.26,14.00,12.03,11.94,13.08,10.66,12.84,20.23,10.12,15.37,13.24,11.06]

# 生成州名-电价映射字典
state_rate_map = dict(zip(state_names, state_price))

2. 完善查询逻辑并处理异常

结合你的输入代码,从字典中获取对应电价,同时加入输入不存在的州名时的容错处理:

user_state = input("What state are you in?: ").title()

# 查询并输出结果
if user_state in state_rate_map:
    kwh = state_rate_map[user_state]
    print(f'The price in {user_state} is {kwh}')
else:
    print(f"Sorry, we don't have rate data for {user_state}")

关键说明

  • zip(state_names, state_price)会把两个列表中同位置的元素一一配对,dict()将配对结果转换为字典,键为州名,值为对应电价。
  • title()方法确保用户输入的州名(如全小写、首字母小写)能匹配字典中首字母大写的键格式。
  • 增加的判断逻辑避免了用户输入无效州名时抛出KeyError错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:16:05