首页 > 解决方案 > 基数为 10 的 int() 的无效文字:'1,265'

问题描述

我正在尝试使用列表中的数字,我得到 ValueError 说'invalid literal for int() with base 10:'1,265'。我知道当我将整数以外的字符串表示形式放入 int() 函数时会引发此错误。因此,从第 3~7 行可以看出,我尝试去除所有空格并删除列表中所有数字中的逗号。但是,我仍然遇到同样的错误。谁能告诉我是什么导致了错误以及我该如何解决?

    n = len(pairs)
    density_sum = 0
    for i in pairs:
        i[0].strip()
        i[1].strip()
        i[0].replace(',','')
        i[1].replace(',','')
    for i in pairs:
        density_sum += int(i[0])
    average_density = density_sum / n
    population_sum = 0
    for i in pairs:
        population_sum += int(i[1])
    average_population = population_sum / n
    numerator = 0
    for i in pairs:
        numerator += (int(i[0])-average_density)*(int(i[1])-average_population)
    denominator = 0
    import math
    for i in pairs:
        denominator += (math.sqrt((int(i[0])-average_density)**2))*(math.sqrt((int(i[1])-average_population)**2))
    coefficient = numerator/denominator
    print(coefficient)

9 density_sum += int(i[0]) ValueError: int() 以 10 为底的无效文字:'1,265'

标签: python

解决方案


错误在于包含数字的字符串,int()不接受,,请尝试:

num = int("".join(string.split(",")))

split函数会将其拆分为两个字符串,.join()并将它们组合成一个字符串。


推荐阅读