我有一个字典,其中包含键和列表作为每个键的值。 我必须遍历附加到每个键的列表值,并将它们分成两个不同的列表,其中“0”和“1”(列表中的值为“0”和“1”)也计数为“0”, '1'和总数。请让我知道如何做到这一点。感谢
答案 0 :(得分:0)
#to loop through a dictionary
total_0 = 0
list_0 =[]
total_1 = 0
list_1 = []
somedict = {'key1':[1,1,1,0,1,0]}
for key,value in somedict.items():
# now loop through each list of your dict, since value keep your list
for item in value:
if item == 1:
total_1 += 1
list_1.append(item)
else :
total_0 += 1
list_0.append(item)
这是一个例子,如果你详细解释,我会尽力帮助你(
答案 1 :(得分:0)
问题严重不足(两个不同的列表应该是互斥的吗?如果一个键的列表同时包含0
和1
,或者两者都没有,会发生什么?等等)。但是,如果例如没有互斥约束,那么如果反复出现,则计数必须重复计数0或1,以及许多其他关于你根本没有提及的条件的猜测...:
def weird_op(d):
keysw0 = []
keysw1 = []
count0s = count1s = 0
for k, v in d.iteritems():
n0 = v.count('0')
n1 = v.count('1')
if n0: keysw0.append(k)
if n1: keysw1.append(k)
count0s += n0
count1s += n1
return keysw0, keysw1, count0s, count1s
我已经省略了您的请求中的“也是全部”部分,因为对于那个一个,缺乏规格与噩梦接壤 - 总共 WHAT ?!钥匙,列表中的物品,天使在针脚上跳舞......?!既然你非常明确地提到列表的项目是字符串(你做使用它们周围的引号,这必须意味着字符串 - 对......?)你如何建议“总计”他们?!
如果你能澄清规格(特别是那个奇怪的“全部”!)无疑可以找到更好的方法,但这是我的思维读取专利水晶球可以推动的边界。顺便说一下,作为规范的一部分,输入字典列表和每个预期结果的一些例子真的会有所帮助。