Вывод противоположного значения из списка
Есть список с двумя элементами (их всегда два):
any_list = [5, 7]
И значение:
item = 5
Как мне красиво/правильно получить противоположное значение из списка?
В данный момент на ум приходит только функция-хелпер
def get_another_item(any_list, item):
for i in any_list:
if item != i:
return i
Ответы (4 шт):
Автор решения: nomnoms12
→ Ссылка
Можно использовать результат логического выражения (0/1) в качестве индекса.
Пример:
any_list = [5, 7]
item = 5
r = any_list[any_list[0] == item] # 7
Автор решения: Danis
→ Ссылка
any_list = [5, 7]
item = 7
r = any_list[~any_list.index(item)]
либо так использую xor
r = item ^ any_list[0] ^ any_list[1]
Автор решения: strawdog
→ Ссылка
Вот вам еще пример, для разнообразия:
any_list = [5, 7]
item = 5
res =(set(any_list) - set([item])).pop() # 7
Автор решения: extrn
→ Ссылка
Решение с использованием словаря
>>> dict((any_list, any_list[::-1]))[5]
7
>>> dict((any_list, any_list[::-1]))[7]
5