Найти - Пользователи
Полная версия: Слияние словарей
Начало » Python для новичков » Слияние словарей
1
pyOut
Как можно соединить 2 словаря?
К примеру
a = {'a': '1', 'b': '2', 'c':'3'}
b = {'d': '4', 'e':'5'}
Чтобы получилось
c = {'a': '1', 'b': '2', 'c':'3', 'd': '4', 'e':'5'}
Ferroman
Можно использовать метод “uрdate”, но надо иметь в виду, что если ключ есть в обеих словарях, то он будет заменён на новый.
Zubchick
или так, с тем же результатом, но наверно медленней.
def mer(dict1, dict2):
buf = dict2.copy()
for i,j in dict1.iteritems():
buf[i] = j
return buf
Kogrom
update, вероятно, эффективнее всего. Ещё можно так:

a = {'a': '1', 'b': '2', 'c':'3''}
b = {'d': '4', 'e':'5'}

c = dict(a.items() + b.items())
Zubchick
>> c = dict(a.items() + b.items())
Зато так всех короче!
pyOut
Ок, спасибо. А можно ли как-то явно установить последовательность ключей?
Ferroman
Нет.
regall
Ferroman
А можно ли как-то явно установить последовательность ключей?
Ferroman
Нет.
Хочу немножко дополнить ответ:
Есть продукт, реализующий отсортированный словарь для версий 2.х: http://pypi.python.org/pypi/sorteddict
Если вы счастливый обладатель Python3k - то можно: http://docs.python.org/3.1/whatsnew/3.1.html
Ну, а если вы, так сказать, “cutting edge” юзер, и уже используете альфа версию Python 2.7, то - http://docs.python.org/dev/whatsnew/2.7.html#pep-372-adding-an-ordered-dictionary-to-collections
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB