Первых у меня есть словарь d1, который выглядит следующим образом:Удалить кортежи из списка словаря значения, если первое значение в кортеже = 1
d1 = { 'w' : ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
'x' : ['d', 'd', 'd', 'e', 'e'],
'y' : ['f', 'f', 'g'],
'z' : ['h', 'i']
}
Тогда я рамочный через этот словарь и сделать новый словарь, в котором каждое значении список с двумя элементами: целое число и список. Целое число - это число строк в этом значении в d1. Список содержит кортежи, каждый кортеж, содержащий строку из d1 (в положении 1 кортежа) и количество раз, что строка появилась в d1 (в положении 0 кортежа):
d2 = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [3, [(2, 'f'), (1, 'g')],
'z' : [2, [(1, 'h'), (1, 'i')]
}
Я хочу удалить любая строка, которая появляется только один раз («г», «ч» и «я»), так что в конце концов я хочу:
dFinal = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [2, [(2, 'f')]
}
Я прочитал пример того, что я считаю, это словарь понимание, чтобы удалить весь словарь если длина списка значений меньше 2:
d = {k:v for k,v in d.items() if len(v) > 1}
Я пытаюсь понять смысл словарного запаса и хотел бы использовать что-то подобное для достижения того, что я описал, и узнать что-то на этом пути.
Сначала я попытался написать функцию, которая приняла d2 в качестве аргумента, но я не знаю, как ссылаться на позицию 0 каждого кортежа.
Тогда подумал, что было бы намного проще сделать dFinal, используя d1, у которого нет кортежей, вместо того, чтобы пытаться изменить d2.
Если вы могли бы описать чистый способ сделать dFinal от d1 и/или d2, и объяснить процесс мысли, я был бы очень признателен. Оба действительно помогут мне понять, как точно манипулировать списками словарей с пониманием.
Спасибо!
Спасибо большое. Однако это не корректирует «целое число» в начале каждого значения. 10, 5 и 3 должны стать 10, 5 и 2. – ddrsee
@ ddrsee пропустил это. Легко исправить. –
Спасибо, миллион. Я прочитаю о Counter и попытаюсь выяснить, что здесь происходит ... – ddrsee