【问题标题】:Python - Convert string with numbers into a list of integers [duplicate]Python - 将带有数字的字符串转换为整数列表[重复]
【发布时间】:2016-09-13 11:18:09
【问题描述】:

我在 SO 上阅读了几个关于此的问题,但是,没有一个对我有用 - 我想我做错了什么。

我有一个用逗号和空格分隔的数字字符串,如下所示:

my_string = '32, 76, 82, 19, 25'

现在我想要的是上面字符串中数字的整数列表,所以我可以像这样从中提取单个整数:

print my_list[2]
>>>82

print my_list[4]
>>>25

提前致谢!

【问题讨论】:

  • 如果您已经阅读了几个问题,但它们都不起作用,那么请展示您的努力
  • 您拥有的分隔符是 ', ' 使用它将您的号码拆分到一个列表中。 integs = [int(x) for x in my_string.split(', ')]
  • my_list = map(lambda x: int(x), my_string.split(','))
  • @BPL lambda 是不必要的,请参阅stackoverflow.com/a/3477535/4014959(以及我对该答案的评论)。
  • @PM2Ring 哦,是的,谢谢。此外,要获得与 py2/3 相同的结果,也许您应该这样做 list(map(int, my_string.split(',')))

标签: python string list integer type-conversion


【解决方案1】:

把问题分成两部分。

1 将文本拆分为包含所需数据的列表并过滤其他数据。

num_list = my_string.split(',')

2 将数据转换成你想要的类型

integers = [int(x) for x in num_list]

那你可以清理一下

integs = [int(x) for x in my_string.split(',')]

【讨论】:

  • 您可以通过将',' 作为参数传递给.split 来使其更通用,因为int 会忽略前导和尾随空格。
  • 感谢您的提示。没想到
【解决方案2】:

最pythonic的方式是

[int(i) for i in my_string.split(',')]

当然,如果您愿意,您可以构建一个简单的 for 循环,例如

mylist = []
for i in my_string.split(','):
    mylist.append(int(i))

有很多可能性

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2020-07-30
    • 2019-11-08
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多