Python 分词
我有两条格言:Python 分词,python,python-3.x,dictionary,data-structures,division,Python,Python 3.x,Dictionary,Data Structures,Division,我有两条格言: dict_1 = {'A': ['red', 'red', 'blue'], 'B': ['red', 'green'], 'C': ['blue', 'green'], ....} dict_2 = {'A': Counter({'red': 2, 'blue': 1}), 'B': Counter({'red': 1, 'green': 1}), 'C': Counter({'blue': 1,
dict_1 = {'A': ['red', 'red', 'blue'],
'B': ['red', 'green'],
'C': ['blue', 'green'], ....}
dict_2 = {'A': Counter({'red': 2, 'blue': 1}),
'B': Counter({'red': 1, 'green': 1}),
'C': Counter({'blue': 1, 'green': 1}), ....}
我需要在它们之间做一些简单的划分,然后两两绘制。期望的结果是这样的,或者任何可以进行划分的结果:
fraction = {'A': [2/3, 1/3],
'B': [1/2, 1/2],
'C': [1/2, 1/2], ....}
现在,我只能将第一个数字分开,任何建议都将不胜感激!
这是我的密码:
fraction = { key: [v/len(colorz)] for namez, colorz in dict_1.items()
for name, color in dict_2.items()
for k, v in color.items() }
.count是,所以我没有将dict_2与计数器一起使用,但可以使用它
fraction = {k: [l.count(e)/len(l) for e in set(l)] for k, l in dict_1.items()}
但这意味着时间短而不一定有效。如果需要更快,你可以做其他事情。如果你想让它们成为字符串,那么
fraction = {k: [f'{e.count(l)}/{len(l)}' for e in set(l)] for k, l in dict_1.items()}
如果你想把它们作为简分数的字符串,可以使用模块。count是,所以我不把dict_2和计数器一起使用,但是可以使用它
fraction = {k: [l.count(e)/len(l) for e in set(l)] for k, l in dict_1.items()}
但这意味着时间短而不一定有效。如果需要更快,你可以做其他事情。如果你想让它们成为字符串,那么
fraction = {k: [f'{e.count(l)}/{len(l)}' for e in set(l)] for k, l in dict_1.items()}
如果您想将它们作为简化分数的字符串,请使用模块使用分数的版本
from fractions import Fraction
{k: [Fraction(v[i], sum(v.values())) for i in v] for k, v in dict_2.items()}
使用分数的版本
from fractions import Fraction
{k: [Fraction(v[i], sum(v.values())) for i in v] for k, v in dict_2.items()}
你想要那些分数作为字符串吗?另外,dict_1和dict_2只是相同数据的不同表达式,对吗?不,我不希望这些分数作为字符串。是的,dict_1和dict_2具有相同的键,但dict_2计算了dict_1值的频率。是否将这些分数作为字符串?另外,dict_1和dict_2只是相同数据的不同表达式,对吗?不,我不希望这些分数作为字符串。是的,dict_1和dict_2有相同的键,但是dict_2计算了dict_1值的频率。这很好,但必须有l.counte。如果键是“B”,则结果是[1/2],而不是[1/2,1/2]。这很好,但必须有l.counte。如果键是“B”,则结果是[1/2],而不是[1/2,1/2]。