访问和操作字典的值(以列表形式)

时间:2010-09-15 14:30:42

标签: python

我有一个字典,其中包含键和列表作为每个键的值。 我必须遍历附加到每个键的列表值,并将它们分成两个不同的列表,其中“0”和“1”(列表中的值为“0”和“1”)也计数为“0”, '1'和总数。请让我知道如何做到这一点。感谢

2 个答案:

答案 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)

问题严重不足(两个不同的列表应该是互斥的吗?如果一个键的列表同时包含01,或者两者都没有,会发生什么?等等)。但是,如果例如没有互斥约束,那么如果反复出现,则计数必须重复计数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 ?!钥匙,列表中的物品,天使在针脚上跳舞......?!既然你非常明确地提到列表的项目是字符串(你使用它们周围的引号,这必须意味着字符串 - 对......?)你如何建议“总计”他们?!

如果你能澄清规格(特别是那个奇怪的“全部”!)无疑可以找到更好的方法,但这是我的思维读取专利水晶球可以推动的边界。顺便说一下,作为规范的一部分,输入字典列表和每个预期结果的一些例子真的会有所帮助。