У меня есть словарь Python, отображающий строки в списки строк.
- Я хочу изменить последний элемент каждого списка в верхний регистр, используя словарь
Например, для этого примера
dd = {'cc': ['aa', 'UU', 'zzzzzzz'], 't': ['aa', 'uu', 'ZZZZZZ']}
Я хочу это:
{'cc': ['aa', 'UU', 'ZZZZZZZ'], 't': ['aa', 'uu', 'ZZZZZZ']} # note the last item in the first list
Я думал, что могу просто переназначить последний элемент с помощью индексации, и попробовал варианты этого
{k: (v[-1] = v[-1].upper()) for k,v in dd.viewitems()}
# --> returns syntax error
# or this, which returns None:
{k: v[:-1].append(v[-1].upper()) for k,v in dd.viewitems()}
#the below works but I don't like it
{k: [i if not v.index(i) == len(v)-1 else i.upper() for i in v] for k,v in dd.viewitems()}
Я не могу заставить его работать без грязногопонимание списка
- Есть ли хороший способ сделать это?
(я на Py 2, хотя и не по своей вине)
Спасибо!