Преобразование строки в кортеж в python

Хорошо, у меня есть эта строка

tc='(107, 189)' 

и мне нужно, чтобы это был кортеж, поэтому я могу называть каждый номер один за раз.

 print(tc[0]) #needs to output 107 

Заранее спасибо!

  • Как настроить локальный каталог библиотеки python / PYTHONPATH?
  • Какой формат создает «adb screencap /sdcard/screenshot.raw»? (без флага «-p»)
  • Итерация через ряд дат в Python
  • Удаление пробела вокруг сохраненного изображения в matplotlib
  • Может ли скрученный быть реализован на Java?
  • Создание Vim из источника в Cygwin
  • Перемешать массив с помощью python, упорядочить порядок элементов массива с помощью python
  • Вложенные аргументы не компилируются
  • 3 Solutions collect form web for “Преобразование строки в кортеж в python”

    Все, что вам нужно, это ast.literal_eval :

     >>> from ast import literal_eval >>> tc = '(107, 189)' >>> tc = literal_eval(tc) >>> tc (107, 189) >>> type(tc) <class 'tuple'> >>> tc[0] 107 >>> type(tc[0]) <class 'int'> >>> 

    Из документов :

    ast.literal_eval(node_or_string)

    Безопасно оцените узел выражения или кодировку Unicode или Latin-1, содержащую выражение Python. Представленная строка или узел могут состоять только из следующих литеральных структур Python: строк, чисел, кортежей, списков, dicts, booleans и None.

    Используйте ast.literal_eval() :

     >>> import ast >>> tc='(107, 189)' >>> tc_tuple = ast.literal_eval(tc) >>> tc_tuple (107, 189) >>> tc_tuple[0] 107 

    Вы можете использовать встроенный eval , который оценивает выражение Python:

     >>> tc = '(107, 189)' >>> tc = eval(tc) >>> tc (107, 189) >>> tc[0] 107 
    Python - лучший язык программирования в мире.