编写一个python脚本来统计每个国家的机场数量,但是得到以下错误“字符串索引必须是整数,而不是str”

2024-04-23 16:48:30 发布

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

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

Tags: csvinfor数量if编程not国家
1条回答
网友
1楼 · 发布于 2024-04-23 16:48:30

documentationcsv.reader

Return a reader object which will iterate over lines in the given csvfile.

...

Each row read from the csv file is returned as a list of strings.

这意味着下面代码中的lists实际上将引用一个列表(不是复数!)字符串数目:

for lists in csv.reader(f):

这意味着您将字符串分配给airports

airports = lists[1]

这又意味着这段代码在字符串中的每个字符上迭代:

for air in airports:

由于字符串是一个序列(由字符组成),当您试图用非整数下标值(特别是单个字符)访问该序列的元素时,会得到一个TypeError

airports[air]+=1

相关问题 更多 >