获取元组的第一个int值,但第一个值是字符串(Error)Python

时间:2017-12-05 19:52:13

标签: python

我试图从我的字典键中的所有元组中获取第一个int值。问题是我一直收到错误:" ValueError:int()的无效文字,基数为10:'人口'"我正在使用的代码是

print([int(item[0]) for item in self.countryCat.values()])

有没有办法可以跳过我的元组中的第一个值,即#34;人口"所以我不会再得到这个错误了?我一直坚持这个。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以制作一个过滤掉不能投放到int的值的生成器

def error_map(f, iterable):
    for item in iterable:
        try:
            yield f(item)
        except ValueError:
            continue

然后我们可以

print(list(error_map(lambda x: int(x[0]), self.countryCat.values())))

答案 1 :(得分:0)

如果你真的想使用列表推导,你需要使它成为条件列表,如here所述,然后根据你的条件,创建一个函数,如果字符串可以转换为字符串,则返回true / false正如所描述的here

def represent_int(s):
    try:
        int(s)
        return True
    except ValueError:
        return 

print([int(item[0]) for item in self.countryCat.values() if represent_int(item[0])])