我有一串数字,像这样:
我想把它转换成一个列表:
我尝试了这段代码:
显然这个方法不起作用,因为字符串中包含空格和逗号。即使我去掉了它们,数字的每个位数也会被转换,导致结果如
我该如何得到期望的结果?
参见:如何将以空格分隔的数字字符串拆分为整数?。这个问题增加了一个小的额外考虑:由于
解决这个问题的明显方法是一系列简单任务的常见组合:
- 如何将字符串拆分为单词列表? - 如何将字符串解析为浮点数或整数? - 如何在列表、字典等中收集重复计算的结果(或对每个元素进行修改后创建列表的副本)? 然而,根据具体要求,可以用其他方式解决。对于某些情况,仅使用分割步骤可能已经足够了。还有其他方法,在这里的一些答案中提供了不同于原生Python列表的输出方式 - 例如,使用标准库的array.array或NumPy数组。
另外,这个问题也可以看作是如何从字符串中提取数字的特殊情况。
example_string = '0, 0, 0, 11, 0, 0, 0, 0, 0, 19, 0, 9, 0, 0, 0, 0, 0, 0, 11'
我想把它转换成一个列表:
example_list = [0, 0, 0, 11, 0, 0, 0, 0, 0, 19, 0, 9, 0, 0, 0, 0, 0, 0, 11]
我尝试了这段代码:
example_list = []
for x in example_string:
example_list.append(int(x))
显然这个方法不起作用,因为字符串中包含空格和逗号。即使我去掉了它们,数字的每个位数也会被转换,导致结果如
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 9, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1]
。我该如何得到期望的结果?
参见:如何将以空格分隔的数字字符串拆分为整数?。这个问题增加了一个小的额外考虑:由于
int
可以接受前导和尾随的空白字符,所以有理由仅在,
上进行拆分,而不是,
。解决这个问题的明显方法是一系列简单任务的常见组合:
- 如何将字符串拆分为单词列表? - 如何将字符串解析为浮点数或整数? - 如何在列表、字典等中收集重复计算的结果(或对每个元素进行修改后创建列表的副本)? 然而,根据具体要求,可以用其他方式解决。对于某些情况,仅使用分割步骤可能已经足够了。还有其他方法,在这里的一些答案中提供了不同于原生Python列表的输出方式 - 例如,使用标准库的array.array或NumPy数组。
另外,这个问题也可以看作是如何从字符串中提取数字的特殊情况。
example_string.split(',')
- Jochen Ritzel