Como posso alterar qualquer tipo de dados em uma string no Python?
Como posso alterar qualquer tipo de dados em uma string no Python?
Respostas:
myvariable = 4
mystring = str(myvariable) # '4'
Além disso, tente alternativamente repr:
mystring = repr(myvariable) # '4'
Isso é chamado de "conversão" em python e é bastante comum.
str(u'ä')não vai funcionar. No entanto repr(u'ä')vai funcionar.
strdestina-se a produzir uma representação de string dos dados do objeto. Se você está escrevendo sua própria turma e deseja strtrabalhar para você, adicione:
def __str__(self):
return "Some descriptive string"
print str(myObj)vai ligar myObj.__str__().
repré um método semelhante, que geralmente produz informações sobre as informações da classe. Para a maioria dos objetos da biblioteca principal, reprproduz o nome da classe (e algumas vezes algumas informações da classe) entre colchetes angulares. reprserá usado, por exemplo, apenas digitando seu objeto no painel de interações, sem usar printou qualquer outra coisa.
Você pode definir o comportamento de reprseus próprios objetos, assim como o comportamento de str:
def __repr__(self):
return "Some descriptive string"
>>> myObjno painel de interações ou repr(myObj)resultará emmyObj.__repr__()
object.__repr__representação entre colchetes angulares ao estilo, mas muitos dos objetos mais usados não. A regra de ouro para repré que se faz sentido para retornar código Python que poderiam ser avaliadas para produzir o mesmo objeto, fazer isso, assim como str, frozenset, e mais outras builtins fazer, mas se isso não acontecer, use o ângulo do suporte para garantir que o que você retorne não possa ser confundido com uma repr legível por humanos e avaliada como fonte.
listque inclui ele próprio retorna algo que não apenas parece, mas é um código avaliável, que avalia a coisa errada - mas os desenvolvedores principais nunca aceitaram isso como licença para expandir o mesmo comportamento no stdlib.)
Vejo que todas as respostas recomendam o uso str(object). Pode falhar se o seu objeto tiver mais do que caracteres ascii e você verá um erro semelhante ordinal not in range(128). Esse foi o meu caso enquanto eu estava convertendo a lista de strings em outro idioma que não o inglês
Eu o resolvi usando unicode(object)
str(object) fará o truque.
Se você deseja alterar a maneira como o objeto é stringificado, defina o __str__(self)método para a classe do objeto. Esse método deve retornar o objeto str ou unicode.
str(any_var)ouany_var.__str__()
timeitmódulo), você deve usar, str(any_var)pois é mais legível para humanos e permite se beneficiar de casos em que any_vardefine, __repr__()mas não ' t define __str__().
Use o strbuilt-in:
x = str(something)
Exemplos:
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'
...
A partir da documentação:
Retorne uma string contendo uma representação bem imprimível de um objeto. Para cadeias, isso retorna a própria cadeia. A diferença com repr (objeto) é que str (objeto) nem sempre tenta retornar uma string aceitável para eval (); seu objetivo é retornar uma sequência imprimível. Se nenhum argumento for fornecido, retornará a string vazia, ''.
Com str(x). No entanto, todo tipo de dados pode definir sua própria conversão de cadeia, portanto, pode não ser o que você deseja.
Você pode usar %scomo abaixo
>>> "%s" %([])
'[]'
Basta usar str- por exemplo:
>>> str([])
'[]'
Cuidado se você realmente deseja "alterar" o tipo de dados. Como em outros casos (por exemplo, alterando o iterador em um forloop), isso pode gerar um comportamento inesperado:
>> dct = {1:3, 2:1}
>> len(str(dct))
12
>> print(str(dct))
{1: 31, 2: 0}
>> l = ["all","colours"]
>> len(str(l))
18
str(var)? é isso que você está procurando?