我有一个dict,我用Counter
来获取每个键的术语频率,例如'A'
和'B'
。
dict = {'A': Counter({'food': 30, 'menu': 19, 'good': 15}), 'B': Counter({'one': 5, 'chicken': 10})}
我希望能够添加一个新字段,以便每个字词都有另一个值。
我试过了:
for key, values in dict.items():
for it1, it2 in values:
dict[key][it1][it2] = 0
但我收到了:
ValueError: too many values to unpack (expected 2)
我是否需要删除Counter对象?如何创建新值以及如何访问此值?
答案 0 :(得分:1)
你最好创建一个全新的字典,以获得额外的嵌套字典:
dct = {key: {k: {v: 0} for k, v in values.items()} for key, values in dct.items()}
答案 1 :(得分:0)
如果不创建新的QStandardItems
,您可以在内部使用dict
操纵当前的dict
。
您可以这样打印当前项目:
Counter
输出:
dct = {'A': Counter({'food': 30, 'menu': 19, 'good': 15}), 'B': Counter({'one': 5, 'chicken': 10})}
for k, v in dct.items():
print(k, v)
为了修改>>> A Counter({'food': 30, 'menu': 19, 'good': 15})
>>> B Counter({'chicken': 10, 'one': 5})
中的值,您可以执行以下操作:
Counter dict
输出:
for k, v in dct:
if "food" in v:
v["food"] = 666
如果您想为print(dct)
>>> {'A': Counter({'food': 666, 'menu': 19, 'good': 15}), 'B': Counter({'chicken': 10, 'one': 5})}
添加新元素,可以执行以下操作:
Counter dict
输出:
for k, v in dct.items():
if "food" in v:
v.update({"new_food":0})
print(dct)
否则,如果您想要新的>>> {'A': Counter({'food': 30, 'menu': 19, 'good': 15, 'new_food': 0}), 'B': Counter({'chicken': 10, 'one': 5})}
"regular"
,可以使用dict
:
dict comprehension
答案 2 :(得分:0)
我希望我理解你的问题。你想再向柜台添加一个项目吗?如果是这种情况,您可以通过更新计数器对象来完成。随着你不断更新,计数会增加。
mydict['A'].update(['price'])
mydict['B'].update(['cow'])
print mydict
如果你再次更新
{'A': Counter({'food': 30, 'menu': 19, 'good': 15, 'price': 2}), 'B': Counter({'chicken': 10, 'one': 5, 'cow': 2})}
将导致
echo off
set "src_folder=S:\data\010\Files"
set "dst_folder=%UserProfile%\Desktop\test"
for /f "tokens=*" %%i in (file-list.txt) do (
xcopy /s/u "%src_folder%%%i" "%dst_folder%"
)