myObject = [('1', 'First'), ('2', 'Second')]
CHOICES = set(myObject)
def set_choices():
global CHOICES
CHOICES.clear() # Remove the element from set CHOICES
# Do some of your changes here
anotherObject = [('3', 'Third'), ('4', 'Fourth')]
CHOICES[:] = set(anotherObject)
print(CHOICES) # Before calling set_choices
set_choices()
print(CHOICES) # After you calling set_choices
Я думаю, это сработает. Но я не знаю, является ли использование set и tuple хорошей идеей, я бы лично предложил вам использовать список list. Есть ли конкретная причина использовать набор вместо других параметров?
Выход:
{('2', 'Second'), ('1', 'First')}
{('4', 'Fourth'), ('3', 'Third')}
Ответьте на ваш комментарий к списку использования:
CHOICES = [['1', 'First'], ['2', 'Second']]
def set_choices():
# Changed since the comment of another member aaronasterling
# Removed the use of global
CHOICES[:] = [['3', 'Third'], ['4', 'Fourth']]
print(CHOICES)
set_choices()
print(CHOICES)
Выход:
[['1', 'First'], ['2', 'Second']]
[['3', 'Third'], ['4', 'Fourth']]
Чтобы узнать больше о назначении срезов, прочитайте этот ТАК вопрос и ответ .