首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法对齐具有相同索引位置的多个列表?

是否有方法对齐具有相同索引位置的多个列表?
EN

Stack Overflow用户
提问于 2019-01-06 01:23:56
回答 2查看 119关注 0票数 1

我有一份清单:

代码语言:javascript
复制
[
    ['104314', '104319'],
    ['N(1)40-35', 'N(1)40-5'],
    ['N(1)F-T15', 'N(1)I-TJS1/0']
]

我需要做的是得到第一个项目,并使它成为一个关键的字典。除了第一项之外,我需要将它们与第一项的位置对齐,以便列出类似这样的字典,我真的不知道如何用Pythonic的方式这样做:

代码语言:javascript
复制
[
    {'104314': ['N(1)40-35', 'N(1)F-T15']},
    {'104319': ['N(1)40-5', 'N(1)I-TJS1/0']}
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-06 01:27:43

试着理解这个列表:

代码语言:javascript
复制
>>> mylist = [
...     ['104314', '104319'],
...     ['N(1)40-35', 'N(1)40-5'],
...     ['N(1)F-T15', 'N(1)I-TJS1/0']
... ]
>>> [{k: v} for k, *v in zip(*mylist)]
[{'104314': ['N(1)40-35', 'N(1)F-T15']}, {'104319': ['N(1)40-5', 'N(1)I-TJS1/0']}]

但是,使用单键分词是没有意义的,所以您可以尝试一下这个词的理解:

代码语言:javascript
复制
>>> {k: v for k, *v in zip(*mylist)}
{'104314': ['N(1)40-35', 'N(1)F-T15'], '104319': ['N(1)40-5', 'N(1)I-TJS1/0']}
票数 2
EN

Stack Overflow用户

发布于 2019-01-06 01:48:14

对于Python 2,您可以这样做:

代码语言:javascript
复制
ml=[
   ['104314', '104319'],
   ['N(1)40-35', 'N(1)40-5'],
   ['N(1)F-T15', 'N(1)I-TJS1/0']
]

关于一份词典的清单:

代码语言:javascript
复制
>>> [{t[0]:list(t[1:])} for t in zip(*ml)]
[{'104314': ['N(1)40-35', 'N(1)F-T15']}, {'104319': ['N(1)40-5', 'N(1)I-TJS1/0']}]

对于单个dict (如果所有键都是唯一的):

代码语言:javascript
复制
>>> {t[0]:list(t[1:]) for t in zip(*ml)}
{'104319': ['N(1)40-5', 'N(1)I-TJS1/0'], '104314': ['N(1)40-35', 'N(1)F-T15']}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54057853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档