TypeError: 'int' object is not subscriptable - Trying To Create A Graph

TypeError: 'int' object is not subscriptable - Trying To Create A Graph

我正在尝试创建一个简单的程序,然后我输入的与每日 COVID-19 病例相关的数据将被制成表格并创建成一个小图表。例如,我将首先输入(主要输入)将是:7 20200401 20200403,它代表我的主要输入之后的输入数量,以及案例的起始日期。然后我将继续输入医院、该医院的病例数和报告日期。每天的案例数将由 * 表示。当我去 运行 我的程序时,我遇到了:

追溯(最近调用最后):

文件“C:/Users/-/-/-/-.py”,第 25 行,

print("{}{}{}".format(EmptySet[i], ":", "*" * CaseNumberList [i]))

TypeError: 无法将序列乘以 'str'

类型的非整数

有什么方法可以解决这个问题,让程序每天正确显示正确的病例数吗?

这是我的代码:

CoronaCaseNumber = input("")
CoronaList = CoronaCaseNumber.split(" ")
LuckyNumber = CoronaList[0]
Date = CoronaList[1]
Date2 = CoronaList[2]
LuckyNumero = int(LuckyNumber)
DateList = []
CaseNumberList = []
for case in range(LuckyNumero):
    CoronaCaseData = input()
    CoronaList2 = CoronaCaseData.split(" ")
    InfoDate = CoronaList2[1]
    DateList.append(InfoDate)
    CaseNumber = CoronaList2[2]
    CaseNumberList.append(CaseNumber)

EmptySet = []
for i in DateList:
    if i >= Date and i <= Date2:
        if i not in EmptySet:
            EmptySet.append(i)
IntCaseNumberList = int("".join(str(i) for i in CaseNumberList))
EmptySet.sort()
for i in range(len(EmptySet)):
    print("{}{}{}".format(EmptySet[i], ":", "*" * IntCaseNumberList[i]))

感谢任何帮助。

这是创建一个整数,它是 CaseNumberList 中所有数字的串联,而不是整数列表:

IntCaseNumberList = int("".join(str(i) for i in CaseNumberList))

因此,当您尝试使用 IntCaseNumberList[i] 时,它不起作用,因为它是一个数字,而不是列表。

要创建整数列表,您需要在列表推导中调用 int()

IntCaseNumberList = [int(i) for i in CaseNumberList]

您也可以直接将整数直接放入 CaseNumberList 中,这样就不需要创建新列表了。变化

CaseNumberList.append(CaseNumber)

CaseNumberList.append(int(CaseNumber))