Як я можу змінити будь-який тип даних у рядок на Python?
Як я можу змінити будь-який тип даних у рядок на Python?
Відповіді:
myvariable = 4
mystring = str(myvariable) # '4'
також спробуйте repr:
mystring = repr(myvariable) # '4'
Це називається "перетворення" в python, і є досить поширеним явищем.
str(u'ä')не вийде. Однак repr(u'ä')буде працювати.
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__()
object.__repr__-style кут-дужку представлення, але багато з найбільш часто використовуваних - ні. Правило для reprє те , що , якщо це має сенс повернутися Python код , який може бути оцінений , щоб зробити той же об'єкт, зробити це, так само як str, frozensetі більшість інших робити вбудовані функції , але якщо цього не станеться , використовуйте кутову-кронштейн форму, щоб переконатися, що те, що ви повертаєтесь, неможливо помилитися з реприпом, що читається і оцінюється людиною як джерело.
listщо включає в себе, повертає те, що не тільки виглядає, але є кодом, що оцінюється, що оцінюється не так - але основні розробники ніколи не брали це як ліцензію на розширення того ж самого поведінка в stdlib.)
Я бачу, що всі відповіді рекомендую використовувати str(object). Він може вийти з ладу, якщо у вашого об'єкта більше символів ascii, і ви побачите помилку ordinal not in range(128). Так було для мене, коли я перетворював список рядків мовою, відмінною від англійської
Я вирішив це за допомогою unicode(object)
str(object) зробить трюк.
Якщо ви хочете змінити спосіб об'єднання строків, визначте __str__(self)метод для класу об'єкта. Такий метод повинен повернути str або unicode об'єкт.
str(any_var)абоany_var.__str__()
timeitмодуля), вам слід користуватися, str(any_var)оскільки він є більш зрозумілим для людини і дозволяє отримати вигоду з випадків, коли any_varвизначає, __repr__()але не ' t визначити __str__().
Використовуйте strвбудований:
x = str(something)
Приклади:
>>> str(1)
'1'
>>> str(1.0)
'1.0'
>>> str([])
'[]'
>>> str({})
'{}'
...
З документації:
Поверніть рядок, що містить добре зображений об'єкт для друку. Для рядків це повертає сам рядок. Різниця з repr (object) полягає в тому, що str (object) не завжди намагається повернути рядок, прийнятний для eval (); її мета - повернути рядок для друку. Якщо аргумент не наводиться, повертає порожній рядок, ''.
Просто використовуйте str- наприклад:
>>> str([])
'[]'
str(var)? це те, що ти шукаєш?