Это общая версия. Это может быть использовано для создания словаря со значениями в виде списка, даже если ключ присутствует только в одном из них.
dic1 = {'A': 25, 'B': 41, 'C': 32}
dic2 = {'A': 21, 'B': 12, 'C': 62}
result = {}
for key in (dic1.viewkeys() | dic2.keys()):
if key in dic1: result.setdefault(key, []).append(dic1[key])
if key in dic2: result.setdefault(key, []).append(dic2[key])
print result
Выход
{'A': [25, 21], 'C': [32, 62], 'B': [41, 12]}
Если вы используя Python 3, цикл должен быть изменен следующим образом. Благодаря Martijn:)
for key in (dic1.keys() | dic2.keys()):
В многомерном массиве в VB или различных API, производных от COM, вы можете запросить нижнюю границу по измерению. Типы массивов могут быть основаны на 0 или 1 (т. Е. Начиная с нуля или 1), и это применимо также к многомерным массивам.
Это также может применяться к массивам, предоставляемым через взаимодействие COM. Например, многие API Excel используют массивы на основе 1, а многие функции API используют массивы вариантов в качестве параметров (вариант, по сути, был изобретен как тип данных для ячейки электронной таблицы).
При использовании COM-взаимодействия вам все равно придется хорошо работать с этими API и системами типов. Первоначально они были разработаны для использования с VBA, а «классические» языковые варианты VB4-6 имели поистине причудливую систему типов из-за их тесной связи с COM. Системы типа .Net языка C # et. al. несколько менее болезненны, чем их предшественники на основе COM, но вы все равно почувствуете боль при использовании COM-взаимодействия.
Теоретически вы можете создавать массивы с любой нижней или верхней границей для индексации. VB.NET может использовать это для создания массивов с нижней границей 1, чтобы быть совместимыми с некоторыми более старыми версиями VB, но вы можете использовать Array.CreateInstance (Type, Int32 [], Int32 []) , чтобы создать массив с любой желаемой нижней границей.
Существует один вызов CreateInstance
, который устанавливает ненулевые нижние границы:
CreateInstance (Type, Int32 [], Int32 [])
Создает многомерный Массив указанного типа и длины измерений с указанными нижними границами.
Сравните это с:
CreateInstance (Type, Int32 [])
Создает многомерный массив указанного типа и длины измерений с нулевым значением индексирование на основе. Длина измерений указывается в массиве 32-битных целых чисел.
(Фактически, для любой другой перегрузки. Из шести перегрузок CreateInstance
пять создают массив с отсчетом от нуля).