2010-09-15 2 views
0

У меня есть словарь с ключами и список, прикрепленный как значение для каждого ключа. Мне нужно передать значение списка, прикрепленное к каждому ключу, и разделить их на два разных списка: «0» и «1» (как «0» и «1» - значения в списке) также с числом «0», , '1' и общее количество. Пожалуйста, дайте мне знать, как я должен уйти, делая это. БлагодаряДоступ к значениям (в виде списка) словаря

+0

Можете ли вы дать некоторые примеры данных и выходные данные, которые вы хотели бы. Не совсем понятно, что вы хотите. –

+0

Дано: словарь = {K1: [0,1,1,0,1,0,0], K2: [1,1,1,0,0,1,1], K3: [0,0,0 , 1,1,1,0]} – Compuser7

+0

Мне нужно пройти через значения каждого из K1, K2 и K3, используя цикл for и используя «if» внутри, которые должны проверить, является ли его «1» или «0», а затем поместить их в разные списки. – Compuser7

ответ

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) 

То пример, если вы объяснить это подробно, я постараюсь помочь вам больше (:

0

Проблема состоит в изобилии при заданных (это два различных списка должен быть взаимоисключающими Что произойдет, если ключ имеет список как с 0, так и с 1 или ни с? Etc). Но если, например, нет ограничения взаимного исключения, подсчеты должны подсчитывать каждый 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?! Ключи, элементы в списках, ангелы, танцующие на точке булавки ...?! И так как вы очень конкретно упоминаете, что элементы списков являются строками (вы используете do, используйте цитаты вокруг них, которые должны означать строки - правильно ...?), Как флип вы предлагаете «суммировать» их ?!

Если вы можете уточнить спецификации (особенно это странное «тотальное»!), Несомненно, можно найти более подходящие подходы, но это та граница, на которую может надавить запатентованный кристалл шарика. BTW, как часть спецификаций, некоторые примеры входных указателей и ожидаемых результатов для каждого действительно помогли бы.

+0

1) У каждого ключа наверняка есть как «1», так и «0». – Compuser7

+0

2) Да, счетчик, как ожидается, подсчитывает количество «0» и «1», он встречает – Compuser7

+0

. 3) Несмотря на то, что значения будут строками, я здесь, в общем случае, означает общее число «0» и «1», он столкнулся с – Compuser7

Смежные вопросы