问题:如何在Python中将任何数据类型更改为字符串
如何在Python中将任何数据类型更改为字符串?
回答 0
myvariable = 4
mystring = str(myvariable) # '4'
另外,也可以尝试repr:
mystring = repr(myvariable) # '4'
这在python中称为“转换”,非常普遍。
回答 1
str
旨在产生对象数据的字符串表示形式。如果您正在编写自己的类,并且想str
为您工作,请添加:
def __str__(self):
return "Some descriptive string"
print str(myObj)
会打电话给myObj.__str__()
。
repr
是类似的方法,通常会产生有关类信息的信息。对于大多数核心库对象,repr
在尖括号之间生成类名称(有时会生成一些类信息)。repr
例如,仅通过在“交互”窗格中键入对象即可使用,而无需使用print
或其他任何方法。
您可以repr
为自己的对象定义行为,就像可以定义以下对象的行为一样str
:
def __repr__(self):
return "Some descriptive string"
>>> myObj
在“交互”窗格中,或repr(myObj)
,将导致myObj.__repr__()
回答 2
我看到所有建议使用的答案str(object)
。如果您的对象包含多个ascii字符,则可能会失败,并且您会看到类似的错误ordinal not in range(128)
。在我用英语以外的其他语言转换字符串列表时,情况就是这样
我通过使用解决了 unicode(object)
回答 3
str(object)
会成功的
如果要更改对象的字符串化方式,请__str__(self)
为对象的类定义方法。这种方法必须返回str或unicode对象。
回答 4
使用str
内置的:
x = str(something)
例子:
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'
...
从文档中:
返回一个字符串,其中包含对象的可很好打印的表示形式。对于字符串,这将返回字符串本身。与repr(object)的区别在于str(object)并不总是尝试返回eval()可接受的字符串;它的目标是返回可打印的字符串。如果未提供任何参数,则返回空字符串“”。
回答 5
用str(x)
。但是,每种数据类型都可以定义自己的字符串转换,因此这可能不是您想要的。
回答 6
您可以%s
如下使用
>>> "%s" %([])
'[]'
回答 7
只需使用str
-例如:
>>> str([])
'[]'
回答 8
使用格式:
"%s" % (x)
例:
x = time.ctime(); str = "%s" % (x); print str
输出: 2018年1月11日星期四20:40:05
回答 9
如果您确实要“更改”数据类型,请小心。像在其他情况下(例如,在for
循环中更改迭代器),这可能会引起意外的行为:
>> dct = {1:3, 2:1}
>> len(str(dct))
12
>> print(str(dct))
{1: 31, 2: 0}
>> l = ["all","colours"]
>> len(str(l))
18