基于正则表达式提取值的python脚本验证

基于正则表达式提取值的python脚本验证,python,regex,Python,Regex,我有以下表格的数据: submission #,scores 882,"Overall evaluation: 1 Invite to interview: 1 Strength or novelty of the idea (1): 4 Strength or novelty of the idea (2): 4 Strength or novelty of the idea (3): 3 Use or provision of open data (1): 3 Use or provisio

我有以下表格的数据:

submission #,scores
882,"Overall evaluation: 1
Invite to interview: 1
Strength or novelty of the idea (1): 4
Strength or novelty of the idea (2): 4
Strength or novelty of the idea (3): 3
Use or provision of open data (1): 3
Use or provision of open data (2): 3
""Open by default"" (1): 4
""Open by default"" (2): 4
Value proposition and potential scale (1): 2
Value proposition and potential scale (2): 1
Market opportunity and timing (1): 3
Market opportunity and timing (2): 1
Triple bottom line impact (1): 2
Triple bottom line impact (2): 2
Triple bottom line impact (3): 4
Knowledge and skills of the team (1): 1
Knowledge and skills of the team (2): 2
Capacity to realise the idea (1): 1
Capacity to realise the idea (2): 3
Capacity to realise the idea (3): 1
Appropriateness of the budget to realise the idea: 3"
882,"Overall evaluation: 2
Invite to interview: 3
Strength or novelty of the idea (1): 4
Strength or novelty of the idea (2): 1
Strength or novelty of the idea (3): 4
Use or provision of open data (1): 4
Use or provision of open data (2): 3
""Open by default"" (1): 3
""Open by default"" (2): 4
Value proposition and potential scale (1): 4
Value proposition and potential scale (2): 4
Market opportunity and timing (1): 4
Market opportunity and timing (2): 4
Triple bottom line impact (1): 4
Triple bottom line impact (2): 1
Triple bottom line impact (3): 3
Knowledge and skills of the team (1): 3
Knowledge and skills of the team (2): 2
Capacity to realise the idea (1): 2
Capacity to realise the idea (2): 3
Capacity to realise the idea (3): 3
Appropriateness of the budget to realise the idea: 3"
883,"Overall evaluation: 1
Invite to interview: 1
Strength or novelty of the idea (1): 4
Strength or novelty of the idea (2): 3
Strength or novelty of the idea (3): 4
Use or provision of open data (1): 2
Use or provision of open data (2): 3
""Open by default"" (1): 3
""Open by default"" (2): 3
Value proposition and potential scale (1): 2
Value proposition and potential scale (2): 1
Market opportunity and timing (1): 3
Market opportunity and timing (2): 1
Triple bottom line impact (1): 1
Triple bottom line impact (2): 4
Triple bottom line impact (3): 2
Knowledge and skills of the team (1): 3
Knowledge and skills of the team (2): 3
Capacity to realise the idea (1): 1
Capacity to realise the idea (2): 3
Capacity to realise the idea (3): 4
Appropriateness of the budget to realise the idea: 3"
883,"Overall evaluation: 1
Invite to interview: 1
Strength or novelty of the idea (1): 2
Strength or novelty of the idea (2): 2
Strength or novelty of the idea (3): 1
Use or provision of open data (1): 2
Use or provision of open data (2): 1
""Open by default"" (1): 3
""Open by default"" (2): 2
Value proposition and potential scale (1): 2
Value proposition and potential scale (2): 2
Market opportunity and timing (1): 2
Market opportunity and timing (2): 2
Triple bottom line impact (1): 1
Triple bottom line impact (2): 2
Triple bottom line impact (3): 2
Knowledge and skills of the team (1): 4
Knowledge and skills of the team (2): 2
Capacity to realise the idea (1): 2
Capacity to realise the idea (2): 2
Capacity to realise the idea (3): 3
Appropriateness of the budget to realise the idea: 3"
885,"Overall evaluation: 2
Invite to interview: 1
Strength or novelty of the idea (1): 2
Strength or novelty of the idea (2): 2
Strength or novelty of the idea (3): 2
Use or provision of open data (1): 2
Use or provision of open data (2): 2
""Open by default"" (1): 2
""Open by default"" (2): 2
Value proposition and potential scale (1): 1
Value proposition and potential scale (2): 2
Market opportunity and timing (1): 2
Market opportunity and timing (2): 1
Triple bottom line impact (1): 2
Triple bottom line impact (2): 1
Triple bottom line impact (3): 1
Knowledge and skills of the team (1): 4
Knowledge and skills of the team (2): 2
Capacity to realise the idea (1): 1
Capacity to realise the idea (2): 3
Capacity to realise the idea (3): 2
Appropriateness of the budget to realise the idea: 3"
以及以下python脚本:

map = {}
lines=open("new_data.csv",'r').read().splitlines()
for l in lines:
    data = l.split('"Overall evaluation:')
    if len(data) == 2:
        if data[0] not in map.keys():
            map[data[0]] = (0,0)
        map[data[0]] = (map[data[0]][0]+int(data[1]) , map[data[0]][1]+1)
for x, y in map.items():
    print(str(x) + ", " + str(y[0]/y[1]))

我认为是这样的:它取两个
总体评估:
数字的平均值,并将其输出到提交数字旁边,对吗

您的
映射
值是每个元组,对应于看到的项目数以及相同项目看到的所有值的总和


两个除法确实返回平均值(尽管它们是整数,结果是舍入的——如果你想要一个浮点结果而不是一个整数结果,就把一个或两个都铸造成浮点).< /P>BTW,如果你的<代码> map 集合,这将是比较容易阅读的。Debug(Labbda:(0,0))——这样,您就可以使用条件逻辑来处理循环中未跟踪的案例。@CharlesDuffy CR想要OP编写的代码,而不是他们想要向他们解释的代码(使用变量名

map
也是不幸的,因为这与内置函数冲突).那么它会输出从两位评审员处收到的所有分数的平均值?我是否应该将邮件移动到CR/不,不要把它移到CR——@jornsharpe是对的,这里不欢迎你自己编写的代码。它是平均值,但除非使用Python 3.err,否则四舍五入为浮点值,“四舍五入为整数值”,除非使用Python 3。