说我有一个清单,项目:['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
帮助!?
答案 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