如何在python中将任何数据类型更改为字符串

duh*_*onn 119 python

如何在Python中将任何数据类型更改为字符串?

Don*_*ner 111

myvariable = 4
mystring = str(myvariable)  # '4'
Run Code Online (Sandbox Code Playgroud)

另外,尝试repr:

mystring = repr(myvariable) # '4'
Run Code Online (Sandbox Code Playgroud)

这在python中称为"转换",并且很常见.

  • 我不会使用repr(myvariable) - 它经常返回有关类类型,内存地址等的信息.它对调试更有用.使用str(myvariable)转换为string和unicode(变量)以转换为unicode. (5认同)
  • unicode呢?诸如“ str(u'ä')”之类的东西将不起作用。但是`repr(u'ä')`将起作用。 (2认同)
  • None 和 False 又如何呢? (2认同)

Bri*_*n S 48

str用于生成对象数据的字符串表示.如果您正在编写自己的课程并希望str为您工作,请添加:

def __str__(self):
    return "Some descriptive string"
Run Code Online (Sandbox Code Playgroud)

print str(myObj)会打电话myObj.__str__().

repr是一种类似的方法,通常会产生关于类信息的信息.对于大多数核心库对象,repr在尖括号之间生成类名(有时是某些类信息).repr例如,只需在交互窗格中输入对象即可,而无需使用print或其他任何内容.

您可以定义repr自己对象的行为,就像您可以定义以下行为一样str:

def __repr__(self):
    return "Some descriptive string"
Run Code Online (Sandbox Code Playgroud)

>>> myObj在您的交互窗格中,或者repr(myObj),将导致myObj.__repr__()


Mad*_*hav 15

我看到所有答案都推荐使用str(object).如果你的对象有超过ascii字符,它可能会失败,你会看到错误ordinal not in range(128).当我用英语以外的语言转换字符串列表时,我就是这种情况

我通过使用解决了它 unicode(object)

  • 在Python 3.0以后,str(object)默认使用unicode (5认同)

Abg*_*gan 11

str(object) 会做的.

如果要更改对象的字符串化方式,请__str__(self)为对象的类定义方法.这种方法必须返回str或unicode对象.


mik*_*iku 11

使用str内置:

x = str(something)
Run Code Online (Sandbox Code Playgroud)

例子:

>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'

...
Run Code Online (Sandbox Code Playgroud)

从文档:

返回一个包含对象的可打印表示的字符串.对于字符串,这将返回字符串本身.与repr(object)的区别在于str(object)并不总是尝试返回eval()可接受的字符串; 它的目标是返回一个可打印的字符串.如果没有给出参数,则返回空字符串''.


Phi*_*ipp 5

随着str(x).但是,每种数据类型都可以定义自己的字符串转换,因此这可能不是您想要的.

  • 这是一个重要而罕见的考虑因素.很好,你提到它. (3认同)