将字符串的一部分附加到字典中

时间:2013-11-17 07:24:34

标签: python-3.x dictionary

说我有一个清单,项目:['a01:01-24-2011:s1','a03:01-24-2011:s2','a02:01-24-2011:s2'] 每个条目的结构为[animalID:datevisited:stationvisited],并且希望计算一个电台被访问的次数,我该怎么做? 只有两个 因此,如果我把它分成两个不麻烦的计数函数 我试过了

def counts_station:
   for item in items:
   counts={}
   if item[-2] in counts:
    counts[item[-2]]=counts[item[-2]]+1
   else:
    counts[item[-2]]=1
   returns counts

以及

def counts_station:
   for item in items:
    station=item[-2]
    if station in counts:
         counts[station]=counts[station]+1
    else:
         counts[station] = 1
    returns counts

帮助!?

1 个答案:

答案 0 :(得分:1)

在尝试将其用作关键字之前,您需要将字符串拆分为子项,使用范围[-2:]而不仅仅是-2,或者只取字符串的最后一个字符(1或2),而不是倒数第二。您的代码中也有一些小错误:需要将counts初始化为空字典:

items = ['a01:01-24-2011:s1', 'a03:01-24-2011:s2', 'a02:01-24-2011:s2']

def counts_station(items):
    counts={}
    for item in items:
        station=item[-1]
        if station in counts:
            counts[station]=counts[station]+1
        else:
            counts[station] = 1
    return counts

另一种方法是使用.get(),如果密钥不存在,则返回默认值0

def counts_station(items):
    counts={}
    for item in items:
        station=item[-1]
        counts[station]=counts.get(station,0) + 1
    return counts