Удалить значение (город) из Кортежа

всем хорошего вечера. А получается из кортежа мы не можем удалить значение если оно там есть? так как кортеж это не изменяемый тип данных.. Правильно ли я сделал? положил значения в список, удалил оттуда город - значение? и потом положил его в кортеж, или можно как-то оптимизировать его?


from time import ctime

# cities = 'Воронеж Самара Тольятти Ульяновск Пермь'
cities = 'Саиара Москва Вологда Димитровград'
# cities = 'Ульяновск Казань Омск Воронеж Смоленск'


print(cities)

cities = cities.split()
print(cities)

gr = 'Ульяновск'

for items in cities:
    if gr in items:
        cities.remove(gr)
        break

print(*tuple(cities))


---

Тут получается чисто из академических целях в качестве учебы.. Учусь на Степике.. дошли до кортежей.. 

задача надо удалить из списка (кортежа) город Ульяновск.. 
получается что из самого кортежа удалить нельзя, т.е что я сделал.. сделал список, удалил, и потом вывод положил в кортеж, и есть уверенность что это неправильно, что можно сделать как то прощее и производительнее.. 
 

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

Автор решения: Oopss
cities = ('Ульяновск','Казань', 'Омск', 'Воронеж', 'Смоленск')
gr = 'Ульяновск'
res = (i for i in cities if i!= gr)
print(type(res))
res = tuple(res)
print(res)
print(type(res))

<class 'generator'>
('Казань', 'Омск', 'Воронеж', 'Смоленск')
<class 'tuple'>
→ Ссылка