编写python脚本来计算每个国家/地区的机场数量,但得到以下错误'string indices must be integers, not str'



我是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

最新更新