Я думаю, что это просто странная ошибка: я удаляю collectionViewController в SB, затем создаю новый, проблема исчезает
Python 2:
res = dict((v,k) for k,v in a.iteritems())
Python 3 (спасибо @erik):
res = dict((v,k) for k,v in a.items())
Вы можете попробовать:
d={'one':1,'two':2}
d2=dict((value,key) for key,value in d.iteritems())
d2
{'two': 2, 'one': 1}
Остерегайтесь, что вы не можете » reverse 'словарь if
{'один': 1, 'два': 1}
. В новом словаре может быть только один элемент с ключом 1
. {'one': [1]}
. [1]
- допустимое значение, но не действительный ключ. См. эту ветку в списке рассылки python для обсуждения этой темы.
new_dict = dict (zip(my_dict.values(),my_dict.keys()))
Начиная с Python 2.7, включая 3.0+, существует, возможно, более короткая и более читаемая версия:
>>> my_dict = {'x':1, 'y':2, 'z':3}
>>> {v: k for k, v in my_dict.items()}
{1: 'x', 2: 'y', 3: 'z'}
In [1]: my_dict = {'x':1, 'y':2, 'z':3}
In [2]: dict((value, key) for key, value in my_dict.iteritems())
Out[2]: {1: 'x', 2: 'y', 3: 'z'}
new_dict = dict( (my_dict[k], k) for k in my_dict)
или даже лучше, но работает только в Python 3:
new_dict = { my_dict[k]: k for k in my_dict}