我是python编程的新手,我正在尝试计算每个国家的机场数量。我收到错误,有人可以帮助我解决以下问题吗
import csv
f = open("airports.dat")
for lists in csv.reader(f):
airports = lists[1]
countries = lists[3]
for air in airports:
if air not in airports:
airports[air]=1
else:
airports[air]+=1
print(airports)
出现以下错误 -
TypeError Traceback (most recent call last)
<ipython-input-75-df427e17a15c> in <module>()
6
7 for air in airports:
----> 8 if air not in airports(airports):
9 airports[air]=1
10 else:
TypeError: 'str' object is not callable
来自csv.reader
的文档:
返回一个读取器对象,该对象将遍历给定 csvfile 中的行。
。
从 csv 文件中读取的每一行都以字符串列表的形式返回。
这意味着下面的代码中的lists
实际上将引用字符串列表(不是复数!
for lists in csv.reader(f):
这意味着您要将字符串分配给airports
:
airports = lists[1]
这反过来意味着此代码正在迭代字符串中的每个字符:
for air in airports:
由于字符串是一个序列(字符),因此当您尝试访问具有非整数下标值(特别是单个字符)的该序列的元素时,您会得到一个TypeError
:
airports[air]+=1