I am counting the total occurrences of each item:
from collections import Counter
colors = ['green', 'blue', 'green', 'white', 'white']
colorTotals = Counter(colours)
print(colorTotals)
Running the code prints: Counter({'green': 2, 'white': 2, 'blue': 1}) but I only want to print the dictionary, something like: {'green': 2, 'white': 2, 'blue': 1}
How can I achieve this?
CodePudding user response:
print(dict(colorTotals))
Which outputs
{'green': 2, 'blue': 1, 'white': 2}
CodePudding user response:
dict(colorTotals) is the standard way. If you're golfing, you could also use {**colorTotals} or {}|colorTotals or colorTotals|{} (the latter two require Python 3.9). I see no circumstance where you'd ever use your str literal_eval way.
CodePudding user response:
You will need to convert colorTotals to a string and then slice it:
colorTotals = str(Counter(colors))[8:-1]
If you want to extract the dictionary out of the Counter list and keep it a dictionary, you will need to use ast.literal_eval:
import ast
colorTotals = str(Counter(colors))[8:-1]
dictColorTotals = ast.literal_eval(colorTotals)
print(dictColorTotals)
