微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TypeError:“ int”对象不可下标-尝试创建图形

如何解决TypeError:“ int”对象不可下标-尝试创建图形

我正在尝试创建一个简单的程序,然后将我与日常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))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。