首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关联数组awk vs python

关联数组awk vs python
EN

Stack Overflow用户
提问于 2014-05-05 14:06:35
回答 1查看 252关注 0票数 0

我在awk中使用关联数组来执行数据集中值的计算。我想知道如何在Python中执行完全相同的操作。

输入 密钥1;cr;10 键1;db;5 密钥2;cr;5 密钥2;db;7 密钥2;cr;9 密钥2;cr;12 密钥3;db;3

代码语言:javascript
复制
awk -F";" '{a[$1]+=$2=="cr"?$3:$3*-1}END{for(i in a){print i FS a[i]}}' input

输出 密钥1;5 密钥2;19 关键3;9

EN

回答 1

Stack Overflow用户

发布于 2014-05-05 14:20:36

Python 2:

代码语言:javascript
复制
data = '''Key1;cr;10
Key1;db;5
Key2;cr;5
Key2;db;7
Key2;cr;9
Key2;cr;12
Key3;db;3
'''

results = {}

for line in data.splitlines():

    fields = line.split(';')

    if fields[0] not in results:
        results[fields[0]] = 0

    if fields[1] == 'cr':
        results[fields[0]] += int(fields[2])
    else:
        results[fields[0]] -= int(fields[2])

#--- END ---

for key in sorted(results.keys()):
    print '%s;%s' % (key, results[key])

编辑:

顺便问一下:

代码语言:javascript
复制
a[$1]+=$2=="cr"?$3:$3*-1

可以用Python完成(伪代码)

代码语言:javascript
复制
a[$1] += ( $3 if $2=="cr" else $3*-1 )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23474530

复制
相关文章

相似问题

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