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

Python 访问和操作字典的值(以列表形式),python,Python,我有一本带键的字典,每个键都附有一个值列表。 我必须遍历附加到每个键的列表值,并将它们分隔为两个不同的列表,分别使用“0”和“1”(因为“0”和“1”是列表中的值)以及计数“0”、“1”和总数。请让我知道我该怎么做。谢谢 #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.it

我有一本带键的字典,每个键都附有一个值列表。 我必须遍历附加到每个键的列表值,并将它们分隔为两个不同的列表,分别使用“0”和“1”(因为“0”和“1”是列表中的值)以及计数“0”、“1”和总数。请让我知道我该怎么做。谢谢

#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)

这是一个例子,如果你详细解释一下,我会尽力帮助你更多(:

这个问题的规定太少了(这两个不同的列表应该是相互排斥的吗?如果一个键的列表既有
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
我省略了您请求中的“也是总数”部分,因为对于那一部分,缺少规格近乎噩梦--什么的总数?!键,列表中的项目,在大头针上跳舞的天使…?!而且因为您特别提到列表中的项目是字符串(你确实在它们周围使用引号,这一定意味着字符串——对吧…?)你建议如何“合计”它们


如果你能澄清规格(尤其是那个奇怪的“总”规格!)毫无疑问,可以找到更好的方法,但这是我读心术专利水晶球可以推动的边界。顺便说一句,作为规范的一部分,一些输入列表和每个列表的预期结果的示例确实会有帮助。

你能给出一些示例数据和你想要的输出吗。你不完全清楚你想要什么want.Given:dictionary={K1:[0,1,1,0,1,0,0],K2:[1,1,0,0,1,0,1],K3:[0,0,0,1,1,1,1,0]}我必须检查每个K1的值,K2和K3可能使用for循环并在其中使用'if',必须检查它是'1'还是'0',然后将它们放在不同的列表中。同时获得每个键的'1'和'0'的计数以及每个值的总数(1)每个键肯定都有“1”和“0”。2)是的,计数器应该计算它遇到的“0”和“1”的数目3)虽然值是字符串,但这里的“总数”是指它遇到的“0”和“1”的总数encountered@Comp,鉴于这些澄清,我的代码应该是您所需要的(即,看起来我很幸运地猜到了),加上<代码> Cords0+Cord1s来“合计”它们(当然你知道,<代码> +/Cuth>运算符应用于两个数“总数”,对吗?既然你已经请求了0和1s的计数,当然你不能认为这是一个问题。这两个计数…?!这就是为什么我甚至没有想到规范中的超级神秘部分仅仅是对你已经计算过的两个数字求和…!!!)。