如何修复python代码中的错误?

2024-10-01 00:14:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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文件名animallg1.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:数据:打印下表的位置:

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

有人能帮我修一下吗?这样我就能得到想要的结果了。你知道吗


Tags: ofnameinformainfnameinfprint
2条回答

您可能想在这里引用animalnames

for animalname, loc in zip(animalnames, locations):

在回答第二个问题时,您是否正在搜索带有count的电台的确切字符串名称?你知道吗

我看到“loc1”和“loc2”被硬编码到提供的代码段中,我想知道这是否只是一个示例,或者最终的脚本是否使用它们而不是“s1”和“s2”或一些灵活的参数。你知道吗

相关问题 更多 >