从列表项创建字典

时间:2015-06-15 12:55:24

标签: python python-3.x dictionary

以下代码为我提供了如下所示的输出。我想把各个类别的每个数字都放在字典中。有效的方法是什么?

当前代码:

Period Ending
Total Revenue
31821000
30871000
29904000
Cost of Revenue
16447000
16106000
15685000
Gross Profit
15374000
14765000
14219000
Operating Expenses
Research Development
1770000
1715000
1634000

输出

{
    'Total Revenue': [31821000, 30871000, 29904000],
    'Cost of Revenue': [16447000, 16106000, 15685000],
    'Gross Profit': [15374000, 14765000, 14219000]
}

期望的结果

{{1}}

2 个答案:

答案 0 :(得分:0)

这样的事情:

output = {}
current_key = None
for item in data:
    if re.match(r'\(\d+', item) is None:
        current_key = item.replace('(', '-').replace(')', '')
        output[current_key] = []
    else:
        if current_key:
            output[current_key].append(int(item.replace(',', '')))

print output

答案 1 :(得分:0)

与@Eugene Soldatov的答案类似,我试图自动识别数据中断。我正在使用语言环境包,因为您的数据似乎使用逗号分隔单元。您可能必须将第二行调整为您的语言环境。未经测试,因为我没有使用具有该格式的语言环境; - )

import locale
#locale.setlocale(locale.LC_ALL, 'en_US.UTF8')

summary = {}
current_key = None
for line in data:
    try
        if current_key:
            summary[current_key].append(locale.atoi(line.strip()))
    except ValueError:
        current_key = line.strip()
        summary[current_key] = []