Таким образом:
Код: Выделить всё
def do_stuff_to_values(obj):
for v in obj.values():
# do stuff with v
Код: Выделить всё
def do_stuff_to_values(obj):
for v in (obj.values() if isinstance(obj, dict) else obj):
# do stuff with v
Казалось бы, что все встроенные типы последовательностей должны иметь метод итератора значений, есть ли причина, по которой они этого не делают? Или я что-то упускаю?
Это код, который я тестировал:
Код: Выделить всё
mydict = {'k1': 'dv1', 'k2': 'dv2'}
myarray = ['av1', 'av2']
def get_values(obj):
return [i for i in (obj.values() if isinstance(obj, dict) else obj)]
print(get_values(mydict))
print(get_values(myarray))
Подробнее здесь: https://stackoverflow.com/questions/799 ... t-a-type-c
Мобильная версия