【问题标题】:How to convert a string list into an integer in python [duplicate]如何在python中将字符串列表转换为整数[重复]
【发布时间】:2011-09-16 18:12:22
【问题描述】:

在我的 python 脚本中,我有:

user = nuke.getInput("Frames Turned On")
userLst = [user]
print userLst

结果:

['12,33,223']

我想知道如何删除列表中的 ',或者以某种方式将其转换为 int?

【问题讨论】:

  • 你想把用逗号分隔的三个数字变成一个整数?这应该如何工作?
  • @Ignacio:解释一下尼克可能的意思:如果你“删除['12,33,223'] 列表中的'”,你会得到[12,33,223]——至少我是这么读的。 ..

标签: python string list int


【解决方案1】:

split()在逗号处分割,用int()转换成整数:

user_lst = map(int, user.split(","))

【讨论】:

    【解决方案2】:

    列表中没有要删除的 '。当你打印一个列表时,由于它没有直接的字符串表示,Python 会显示它的repr——一个显示其结构的字符串。您有一个包含一项的列表,即字符串 12,33,223;这就是[user] 所做的。

    您可能想用逗号split 字符串,如下所示:

    user_list = user_input.split(',')
    

    如果您希望这些为ints,您可以使用list comprehension

    user_list = [int(number) for number in user_input.split(',')]
    

    【讨论】:

      【解决方案3】:
      [int(s) for s in user.split(",")]
      

      我不知道你为什么定义了单独的userLst 变量,它是一个单元素列表。

      【讨论】:

        【解决方案4】:
        >>> ast.literal_eval('12,33,223')
        (12, 33, 223)
        

        【讨论】:

        • 如果允许用户输入单个数字就不太好。
        • 当然,但这很容易抓住。
        • 为什么不只是 eval('12,33,223', {}) ?这只允许与literal_eval 做同样的事情。 BTW OP 可能不想要数字以外的东西
        • 而且不是数字的东西很容易捕捉到。
        【解决方案5】:
        >>> result = ['12,33,223']
        >>> int(result[0].replace(",", ""))
        1233233
        >>> [int(i) for i in result[0].split(',')]
        [12, 33, 233]
        

        【讨论】:

          【解决方案6】:

          您可以使用 join 方法并将其转换为整数:

          int(''.join(userLst))    
          

          1233223

          【讨论】:

          • 这并不能真正回答问题,也不能解决实际问题。
          • @Eevee - 这如何不将字符串列表转换为 int?
          • 它是列表中的单个字符串,而不是字符串列表。
          猜你喜欢
          • 2020-10-09
          • 2021-07-26
          • 2012-05-08
          • 2013-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-22
          • 2017-10-21
          相关资源
          最近更新 更多