【问题标题】:removing the string character in integer value : Python删除整数值中的字符串字符:Python
【发布时间】:2020-11-12 13:40:06
【问题描述】:

我想从列表中的int 值中删除字符串字符。当我从下面的语句中删除str 字符时,它会扔给我TypeError'int' object is not iterable。我怎样才能做到这一点?

for record in serializer.data:
    if record:
        less_eight = [x for x in str(record['car_cc'])]
        print(less_eight)
    else:
        #some logic

输出:

['8', '0', '0']
['5', '0', '0']

我想要的是:

[8, 0, 0]
[5, 0, 0]

【问题讨论】:

  • [int(x) for x in str(record['car_cc'])]

标签: python django django-rest-framework


【解决方案1】:

编辑加入结果:

for record in serializer.data:
    if record:
        less_eight = [int(''.join(x)) for x in str(record['car_cc'])]
        print(less_eight)
    else:
        #some logic

【讨论】:

  • 如何去掉这个列表中的逗号?
  • less_eight = [int(x) for x in str(record['car_cc']).split(',')] 错了吗?
  • 好吧,我不知道您的原始数据看起来如何。您在那里发布的内容会将record['car_cc'] 转换为字符串,然后在每次遇到逗号时将该字符串拆分为一个列表。我发布的解决方案只是将字符串列表重新连接成一个字符串,然后将其转换为整数。所以这取决于你想要什么
  • 您编辑的答案不会删除逗号,而是给出我首先需要的结果。没关系。非常感谢。
  • 逗号不是逗号,而是列表条目的分隔符
【解决方案2】:

你可以用int()包装它

for record in serializer.data:
    if record:
        less_eight = [int(x) for x in str(record['car_cc'])]
        print(less_eight)
    else:
        #some logic

【讨论】:

    【解决方案3】:

    在输出中,您必须确定 less_eight 是整数:

    for record in serializer.data:
        if record:
            less_eight = [x for x in str(record['car_cc'])]
            print(int(less_eight))
        else:
            #some logic
    

    【讨论】:

    • 您不能删除逗号,因为这是一个列表,并且列表中有多个对象的逗号
    • less_eight = [int(x) for x in str(record['car_cc']).split(',')] 错了吗?
    • 我不确定
    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多