加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在列表之间交换的Pythonic方式?

发布时间:2020-12-20 12:20:38 所属栏目:Python 来源:网络整理
导读:我想要一个城市列表和一个邮政编码列表,其中的位置对应(如果NYC是城市列表中的第一个,NYS的代码将首先在代码列表中).说我想将x设置为NYC的邮政编码.我知道可以这样做: y = citylist.index('New York')x = postcodelist[y]xstring = str(x) 但是,有没有办法
我想要一个城市列表和一个邮政编码列表,其中的位置对应(如果NYC是城市列表中的第一个,NYS的代码将首先在代码列表中).说我想将x设置为NYC的邮政编码.我知道可以这样做:

y = citylist.index('New York')
x = postcodelist[y]
xstring = str(x)

但是,有没有办法将列表等同并在一行中执行此操作,例如:

x = postcodelist.citylist.index('New York').string

解决方法

如果我理解正确,您有两个并行列表,您希望将其视为一个键列表和一个值列表.如果是这样,您可以执行以下操作:

>>> places = ['New York','Texas','California']
>>> zips = ['01010','70707','90909']
>>> place_zip_map = dict(zip(places,zips))
>>> place_zip_map['New York']
'01010'

基本上,将您的地点列表作为您的密钥和您的拉链/邮政编码列表作为您的值,使用zip将它们组合成一系列键值对,然后使用dict创建将它们映射到另一个的dict .

编辑:如果你想创建一个字典,另一种方法是将邮政编码/拉链映射到你可以使用相同过程的地方,只需翻转你邮政编码中的列表顺序即可.如果你想要一个可以查找的结构,你可以将两个结果的dicts组合成一个.只要没有与邮政编码同名的地方,就不会发生冲突.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读