在python语言中,从用逗号分隔的列表中的数字中去掉千个逗号

2024-05-15 16:48:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份与下面类似的数据清单:

a = ['"105', '424"', '"102', '629"', '"104', '307"']

我希望这些数据的格式与下面的类似:

^{pr2}$

我不知道该怎么办。我想也许删除所有的逗号,然后只在应该插入的地方插入逗号,然后删除引号。我觉得这很有挑战性。在

谢谢


Tags: 数据格式地方引号逗号挑战性pr2
3条回答

如果源数据是CSV,您应该使用@steven的答案。在

不管怎样,这里有你如何处理你粘贴的东西。在

正如@troutwine所说,只有在编号零件总是成对的情况下,这才有效。

a = ['"105', '424"', '"102', '629"', '"104', '307"']

from itertools import izip

def pairwise(iterable):
    "s -> (s0,s1), (s2,s3), (s4, s5), ..."
    a = iter(iterable)
    return izip(a, a)

result = []

for x, y in pairwise(a):
    result.append(''.join([x, y]).strip('"'))

print result

给出:

^{pr2}$

此处的成对片段:Iterating over every two elements in a list

如果永远不会有不匹配的对,那么在输入列表大小的1/2范围内循环,将当前索引和下一个索引混合在一起,执行字符串替换并跳到当前索引加上2。在

我假设这些数据最初在一个csv文件中,其中引用了包含逗号的数据(“105424”、“102629”、“104307”),然后用逗号拆分:

>>> '"105,424","102,629","104,307"'.split(',')
['"105', '424"', '"102', '629"', '"104', '307"']

相反,您应该让^{}模块来处理双引号:

^{pr2}$

打印:['105424', '102629', '104307']

相关问题 更多 >