def main():
fname = input("Enter name of file: ")
with open(fname) as inf:
animalnames, dates, locations = zip(*[line.strip().split(':') for line in inf])
d = {}
for animalname, loc in zip(animalname, locations):
d.setdefault(animalname, []).append(loc)
for k, v in d.items():
print(k, end='\t')
print(v.count('loc1'), end='\t')
print(v.count('loc2'))
main()
我有一个txt文件名animallog1.txt,其中包含以下内容
a01:01-24-2011:s1
a03:01-24-2011:s2
a02:01-24-2011:s2
a03:02-02-2011:s2
a03:03-02-2011:s1
a02:04-19-2011:s2
a01:05-14-2011:s2
a02:06-11-2011:s2
a03:07-12-2011:s1
a01:08-19-2011:s1
a03:09-19-2011:s1
a03:10-19-2011:s2
a03:11-19-2011:s1
a03:12-19-2011:s2
我想使用上面的数据,其格式为animaname:data:location来打印下表:
Number of times each animal visited each station :
Animal name Station 1 Station 2
a01 2 1
a02 0 3
a03 4 4
========================================
我已经尝试过,我的代码就是我所拥有的,但它给了我错误
builtins.UnboundLocalError: local variable 'animalname' referenced before assignment
有人可以帮我解决这个问题,这样我就能得到理想的结果。
答案 0 :(得分:5)
您可能想在此处引用animalnames
for animalname, loc in zip(animalnames, locations):
答案 1 :(得分:0)
在回答第二个问题时,您是否正在搜索有计数的电台的确切字符串名称?
我看到“loc1”和“loc2”被硬编码到提供的片段中,我想知道这是否仅仅是作为示例,或者最终脚本是否使用那些而不是“s1”和“s2”或一些灵活的参数。