Я пытаюсь l oop через словарь получить размер каждого элемента, связанного с каждым из ключей. Эти элементы словаря представляют собой массивы или строку. Если это строка, мне нужно количество символов в строке. Если это массив, мне нужен размер массива.
import numpy as np
myDict = {'string': 'this is a string', 'arraySingle': np.array(12),
'array1': np.array([12]), 'multiarray': np.array((12, 12))}
for key in myDict.keys():
size = np.size(myDict[key])
try:
length = len(myDict[key])
except TypeError:
length = None
print('key "{}" has a length of {} and a size of {} '.format(key, length, size))
производит
key string has a length of 16 and a size of 1
key arraySingle has a length of None and a size of 1
key array1 has a length of 1 and a size of 1
key multiarray has a length of 2 and a size of 2
Я бы действительно хотел получить ответ:
key "string" has a ___ of 16
key "arraySingle" has ___ of 1
key "array1" has a ___ of 1
key "multiarray" has a ___ of 2
как мне получить этот ответ элегантно? Я хотел бы сделать это в одну строку, а не использовать что-то вроде
if isisntance(myDict[key], str):
print("do something")
elif isinstance(myDict[key], np.ndarray):
print("do something else")