相关疑难解决方法(0)

Python:从字符串中删除除数字之外的字符

如何从字符串中删除除数字之外的所有字符?

python string

124
推荐指数
11
解决办法
17万
查看次数

从Python中的字符串中删除所有非数字字符("."除外)

我有一个非常好的工作snippit代码,但我想知道是否有人有任何更好的建议如何这样做:

val = ''.join([c for c in val if c in '1234567890.'])
Run Code Online (Sandbox Code Playgroud)

你会怎么做?

python

59
推荐指数
4
解决办法
6万
查看次数

在Python中将数字格式化为货币

我从Python中的货币格式学习,使用语言环境模块将数字格式化为货币.例如,

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import locale

value = 123456789

l = locale.setlocale(locale.LC_ALL, '')     # LC_CTYPE=en_US.UTF-8;LC_NUMERIC=fr_FR.UTF-8;LC_TIME=fr_FR.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=fr_FR.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=fr_FR.UTF-8;LC_NAME=fr_FR.UTF-8;LC_ADDRESS=fr_FR.UTF-8;LC_TELEPHONE=fr_FR.UTF-8;LC_MEASUREMENT=fr_FR.UTF-8;LC_IDENTIFICATION=fr_FR.UTF-8
s = locale.currency(value, grouping=True)   # 123 456 789,00 €

locale.setlocale(locale.LC_ALL, 'en_US.utf-8') 
s = locale.currency(value, grouping=True)   # $123,456,789.00

locale.setlocale(locale.LC_ALL, 'en_US')    # WHY? locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
Run Code Online (Sandbox Code Playgroud)

比方说,我想将数字格式化为其他货币de_DE.我遇到了这个问题,locale.Error: unsupported locale setting因为语言环境de_DE不在列表中locale -a.

locale.setlocale(locale.LC_ALL, 'de_DE')        # locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
Run Code Online (Sandbox Code Playgroud)

一种解决方案是将此区域设置添加到我的计算机.有没有更好的办法?

python locale currency-formatting

10
推荐指数
1
解决办法
1万
查看次数

从 Python 中的字符串中提取货币金额

我正在制作一个从字符串中获取货币并将其转换为其他货币的程序。例如,如果字符串是'the car cost me $13,250'我需要获取$13250。我已经有了这个正则表达式(?:\£|\$|\€)(?:.{1,}),但是很有可能字符串可能有多个价格,所有价格都使用不同的货币。这是我不知道如何有效地做的事情。

我需要知道的是如何从字符串中提取所有价格。我认为即使正则表达式只是返回类似的东西['$12,250,000','£14,500,123','£120.25']也没关系,因为我可以使用这样的东西来获取数字:

prices = ['$12,250','£14,500','£120']
for value in prices:
    value.replace(',','')
Run Code Online (Sandbox Code Playgroud)

和这样的事情来获得货币:

for c in prices:
     currency = c[0]
Run Code Online (Sandbox Code Playgroud)

还有一个问题,价格可能不是整数,可能是$12.54. 关于如何获得初始价格清单的任何帮助都会很棒。

python

4
推荐指数
1
解决办法
9837
查看次数

将$ 45,000,000.00(str)转换为浮点数

我对python非常陌生,我想将字符串$ 45,000,000.00转换为浮点数。

我通过切片字符串然后将它们添加在一起以非常愚蠢的方式进行此操作...

test_data1 = "$45,300.000"
test_data1_1 = test_data1[1:3]
test_data1_2 = test_data1[4:7]
test_data1_3 = test_data1_1 + test_data1_2

c = float(test_data1_3)
Run Code Online (Sandbox Code Playgroud)

因为在这种情况下,我能够获得45300作为所需的int结果,但是,如果我有类似$ 23,456.78的内容,那我将无法以这种愚蠢的方式进行转换。...所以还有更多的pythonic做到这一点的方法?非常感谢!

python

0
推荐指数
1
解决办法
84
查看次数

标签 统计

python ×5

currency-formatting ×1

locale ×1

string ×1