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

我试图从
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']}
点赞