我有一个包含要删除的某些字符的字符串。
a = "2,678"
print int(a.replace(",", ""))
是否有一个字符串方法而不是将该字符串更改为整数的函数,类似于Java的toXXX方法。
我想一个接一个地追加方法,而不是将光标移回字符串的开头并将所有内容放在一起。
# I like:
a.replace(",", "")....toint()
# I don't like:
int(a.replace(",", "")...)
字符串类有执行我想要的方法吗?
Python中没有这样的东西。您可以通过以下方式列出字符串对象的所有方法和属性:
print dir("")
顺便说一句,您也可以用Java编写:
new Integer("2.3")
比较Java的内部类型int和Python的int对象是不公平的。在Python中,没有原始类型。 Python字符串,整数和浮点数是带有方法的对象。
不,这是正确的方法。每Zen of Python:
应该有一种-最好只有一种-显而易见的方法。
要将字符串转换为整数,请始终这样做:
my_integer = int(my_string)
您可以创建自己的类似字符串的类型(然后使用该类型:my_string = MyString('2678'); my_integer = my_string.to_int()
,但不要那样。
当然,在您的特定情况下,您需要从不是整数真正部分的任何内容中清除字符串-但这取决于您的输入(您是否一直在考虑正则表达式,这会更复杂吗?)。
您可以派生自己的类字符串类,以所需的方式运行:
class MyStr(str):
def __int__(self):
return int(self.replace(",", ""))
def to_int(self):
return int(self)
a = MyStr("2,678")
print int(a)
print a.to_int()
您说过您正在“一个接一个地追加”。我认为这意味着这些物品是更大列表的一部分...
a = '1,000'
b = '2,000'
c = '3,000'
my_list = [a, b, c]
total = 0
for item in my_list:
item = int(item.replace(',', ''))
total += item
print total
如果接收到需要转换为整数的输入,则只需设置一次替换。
my_input = int(raw_input('Please enter a number: ').replace(',', ''))