【问题标题】:How to extract some numbers from a character string with comma separating some numbers using python?如何使用python从逗号分隔一些数字的字符串中提取一些数字?
【发布时间】:2015-04-04 06:02:51
【问题描述】:

假设一个字符串

"1977   1,048.20    1,039.40    894.10  694.70  664.20  1,031.60    928.60  18.80   10:27:05    "

如何提取数字,即

1977    1048.20 1039.40 894.10  694.70  664.20  1031.60 928.60  18.80   10 27 05

如果这个字符串没有逗号分隔,我可以提取数字 号码。但是不知道如何在上述情况下获取它们。

以下是我的不带逗号大小写的代码,它不适用于有逗号的大小写。

temperaturetime=re.findall(r'\d*\.?\d+',line)

【问题讨论】:

  • 您要删除逗号吗?你到底想达到什么目的?您的预期输出是什么,一个长字符串或数字列表?
  • 您希望结果是数字还是字符串?
  • 亲爱的朋友们,我想去掉逗号,比如说1000,我想得到1000。我希望结果为数字。谢谢你们。
  • 冒号也应该被删除,但是我的原始代码可以删除冒号,但是它不能删除逗号...编辑器...为什么两位专家投票认为我的问题没有用.. . 好痛... 和你们的专家比起来我的水平可能太低了...
  • 我是对您的问题投反对票的人,主要是因为没有显示确切的预期输出并且回复较晚。你不是唯一一个在这里提出问题的人。尝试尽快回复 cmets。

标签: python regex string numbers comma


【解决方案1】:

试试下面的代码:

x = "1977   1,048.20    1,039.40    894.10  694.70  664.20  1,031.60    928.60  18.80   10:27:05    "
nums = [float(item) if '.' in item else int(item) for item in x.replace(':', ' ').replace(',', '').split()]
print nums #[1977, 1048.2, 1039.4000000000001, 894.10000000000002, 694.70000000000005, 664.20000000000005, 1031.5999999999999, 928.60000000000002, 18.800000000000001, 10, 27, 5]

【讨论】:

  • 哇~效果很好~顺便说一下我应该学习哪一部分来加强......因为我什至不太明白你的语法......谢谢......
【解决方案2】:

如果你想保留逗号,那么 .split() 可以正常工作。

c = "1977   1,048.20    1,039.40    894.10  694.70  664.20  1,031.60    928.60  18.80   10:27:05    "
print c.split()['1977', '1,048.20', '1,039.40', '894.10', '694.70', '664.20', '1,031.60', '928.60', '18.80', '10:27:05']

如果你想删除逗号,

with_comma = c.split()
without_comma = [x.replace(',','') for x in with_comma]
print without_comma
['1977', '1048.20', '1039.40', '894.10', '694.70', '664.20', '1031.60', '928.60', '18.80', '10:27:05']

似乎您输入的最后一个条目的格式不同,您必须处理它才能将列表转换为 [float(x) for x in list]

【讨论】:

  • 谢谢你,爵士。您的解决方案开阔了我的视野,绝对帮助我打开了思路,但是这个不能将 10:27:05 转换为 10, 27,5。如果字符串中有一些字母怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2016-04-20
  • 2013-03-16
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多