Превратить строчку "100, 100" в перечисление целых чисел 100, 100

Tkinter, Pysimplegui имеют combobox, который хранит значения int или str через запятую. Я так понимаю, проще будет как-то поделить str на int и чтобы это всё стало tuple. Короче, combobox имеет значение "100,100", на выходе должен получиться кортеж (100, 100).

Надеюсь, Вы меня поняли.

UPD: Короче, мне нужно сделать комбо с числами разных или одинаковых значений по 2. Типа ['100, 100', '12, 34', '24327, 241627'] Если это можно сделать без string, а, например, через скобки (я пытался), то спасибо.


Ответы (3 шт):

Автор решения: Интик
string = '100,100'
result = tuple(map(int, string.split(',')))
print(result)

Делаем из string список, разделитель - запятая, map переводит строки из списка в числа, из результата создаём кортеж.

→ Ссылка
Автор решения: vlashu

Логика как и в предыдущем ответе (разделение строки методом split(), после чего изменение типа), но синтаксис более читаемый:

data = "100, 100" 
converted_data = tuple(int(value) for value in data.split(','))
→ Ссылка
Автор решения: MarianD

Не понятно, что вы хотите. Да, значения, из которых юзер выбирает, нужны выть в форме списка или кортежи, например

sg.Combo(("красный", "синий", "зеленый"))

введите сюда описание изображения
или

sg.Combo([100, 200, 300])  

введите сюда описание изображения

Но ваше

sg.Combo((100, 100))  

введите сюда описание изображения
не имеет смысла — вы хотите, чтобы юзер выбирал между двумя одинаковыми возможностями?


Всё равно, я отвечу на ваш вопрос. И так, у вас строка чисел с запятой и пробелом (", ") между ними, например

str_of_nums = "100, 200, 300"

и вы хотите получить как результат список [100, 200, 300].

Примените метод .split() для получения списка ["100", "200", 300"]

list_of_numstr = str_of_nums.split(", ")

и затем генератор списка, для применения функции int() к всякому элементу этого списка:

list_of_nums = [int(element) for element in list_of_numstr]
→ Ссылка