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

如何在python 2.7.11中从现有列表的每个项目创建列表?

发布时间:2020-12-20 11:52:11 所属栏目:Python 来源:网络整理
导读:我试图从 python中的列表元素生成列表. 例如:有一个包含以下信息的列表: ?list = [‘AB4′,’AB3′,’AC3′,’BC4′,’BC5’] 这是列表元素的确切格式. 我希望为每个元素创建列表,为字母分开(将两个字母都视为一个块)并为数字分开,这将包含字符串中缺少的
我试图从 python中的列表元素生成列表.
例如:有一个包含以下信息的列表:
?list = [‘AB4′,’AB3′,’AC3′,’BC4′,’BC5’]
这是列表元素的确切格式.
我希望为每个元素创建列表,为字母分开(将两个字母都视为一个块)并为数字分开,这将包含字符串中缺少的字符.这就是我的意思:

AB:['4','3']
 AC:['3']
 BC:['4','5']
 4:['AB','BC']
 3:['AB','AC']
 5:['BC']

这些是我应该从原始列表生成的列表.原始列表的元素没有限制,其格式与示例“两个字母和数字”完全相同.

先感谢您.

解决方法

这样做:

from collections import defaultdict
l=['AB4','AB3','AC3','BC4','BC5']
result=defaultdict(list)
for item in l:  
    #If you want numbers to be numbers and not strings replace item[2:] with int(item[2:])  
    result[item[:2]].append(item[2:])
    result[item[2:]].append(item[:2])

您可以根据需要使用它来打印它:

import pprint
pp = pprint.PrettyPrinter()
pp.pprint(result)

输出:

{'3': ['AB','AC'],'4': ['AB','BC'],'5': ['BC'],'AB': ['4','3'],'AC': ['3'],'BC': ['4','5']}

(编辑:李大同)

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

    推荐文章
      热点阅读