@ User9367133 , не используйте словарь.Он не будет обновлять my_dict
, вместо этого он выберет элементы my_dict
и создаст новый словарь.
Как только вы выберете любое значение, указанное любым ключом в словаре, проверьте, является ли он списком или нет,Если это список, тогда преобразуйте список строк в нижний регистр.
Если вы хотите первоначально обновить содержимое my_dict
, сделайте это.
Попробуйте онлайн на http://rextester.com/KMSLJ9545.
my_dict = {u'customer': [u'GS808E', u'GS810EMX'], u'tablets': [u'Apple IPAD PRO', u'Apple IPAD MINI', u'IPAD'], u'gaming_consoles': [u'SONY PLAYSTATION 4', u'XBOX ONE S', u'PLAYSTATION'], u'range_of_days': 14 };
for key in my_dict:
if type(my_dict[key]) == type([]):
for index, item in enumerate(my_dict[key]):
my_dict[key][index] = item.lower();
print my_dict
"Вывод
{'gaming_consoles': ['sony playstation 4', 'xbox one s', 'playstation'], 'range_of_days': 14, 'tablets': ['apple ipad pro', 'apple ipad mini', 'ipad'], 'customer': ['gs808e', 'gs810emx']}
Если вы все еще предпочитаете использовать словарное понимание для создания нового словаря, аналогичного приведенному выше, то вы можете попробовать следующий код (ноэто не то, что вам нужно).
Попробуйте онлайн на http://rextester.com/CEZ39339.
my_dict = {u'customer': [u'GS808E', u'GS810EMX'], u'tablets': [u'Apple IPAD PRO', u'Apple IPAD MINI', u'IPAD'], u'gaming_consoles': [u'SONY PLAYSTATION 4', u'XBOX ONE S', u'PLAYSTATION'], u'range_of_days': 14 };
my_dict = { key: ([item.lower() for item in my_dict[key]] if type(my_dict[key]) == type([]) else my_dict[key]) for key in my_dict}
print my_dict
"Выход
{u'customer': [u'gs808e', u'gs810emx'], u'tablets': [u'apple ipad pro', u'apple ipad mini', u'ipad'], u'gaming_consoles': [u'sony playstation 4', u'xbox one s', u'playstation'], u'range_of_days': 14}