Вам необходимо выполнить итерацию по элементам счетчика:
for item in counter.items():
languages.append(item[0])
popularity.append(item[1])
В настоящее время вы выполняете:
for item in counter:
languages.extend(item[0])
popularity.extend(item[1])
Это выполняется только по ключам, поэтомукогда вы делаете item[0]
, вы получаете первый символ клавиши, это также относится к item[1]
. Отсюда вы получаете:
['P', 'J', 'C']
['y', 'a', '+']
Соответствующие первая и вторая буквы ваших ключей. Альтернатива, возможно более pythonic , заключается в использовании zip :
counter = {'Java' : 2, 'C++' : 2, 'Python' : 1}
languages, popularity = zip(*counter.items())
print(languages)
print(popularity)
Output
('Java', 'C++', 'Python')
(2, 2, 1)
Обновление
Обратите внимание, что вы должны использовать добавление вместо удлинения. Как указано @ SpghttCd.