2016-10-11 4 views
0

Я пытаюсь связать две разных вещи. 1. Найдите и распечатайте уникальные элементы в списке. 2. Передать значение INT и печать уникальных элементов в первых п элементовНайти уникальные предметы в списке, используя проходную значения для диапазона списка (подсписки)

У меня есть две вещи, которые работают, но не в сочетании, чтобы разделить этот список на подсписков п:

четкости find_uniques (3):

Lista = [ 'а', 'а', 'б', 'с', 'd', 'с', 'е', 'd', 'е', 'е', 'е']

списки = [Lista [х: х + п] при х в xrange (0, Len (LISTA), п)]

печати списков

[[ 'а', 'а', 'Ь'], [ 'с', 'd', 'с'], [ 'е', 'd', 'е'], [ 'е', 'е']]

# вторая часть работает на весь список

печать [а для в Lista если lista.count (а) = = 1]

['b']

# Как получить вторую часть для работы над дополнительными списками и вернуть мне уникальные символы из каждого дополнительного списка.

Выход Ищу: [[ 'б'], [ 'd'], [ 'd']]

+0

Ваше форматирование и вопрос немного запутанным. Можете ли вы привести пример того, какой результат вы хотели бы получить? –

+0

Пытался убрать форматирование, работая на другом. – user6348278

ответ

0

Обычно это проще просто разделить эти операции вместо слияния, но здесь вложенное понимание списка.

lista = ['a', 'a', 'b','c','d','c','e','d','e','f','f'] 
n = 3 
[[ item for item in sublist if sublist.count(item) == 1] for sublist in [ lista[x:x+n] for x in xrange(0, len(lista), n) ] ] 

Лично, хотя это больше, я предпочитаю более читаемый вариант, как так:

def findunique(lista,n=3): 
    listoflists = [ lista[x:x+n] for x in xrange(0,len(lista),n) ] 
    results = [] 
    for sublist in listoflists: 
     unique = [ item for item in sublist if sublist.count(item) == 1] 
     if unique: 
      results.append(unique) 
    return results 

lista = ['a','a','b','c','d','c','e','d','e','f','f']  
print findunique(lista,3) 
+0

Действительно оцените ответ, его трудно читать для начинающего, как я, вы упомянули, что легче выплевывать операции? Как бы вы это сделали, внесите новые списки, а затем примените счет в отдельных списках? Не могли бы вы привести пример, пожалуйста? – user6348278

+0

Добавлен пример более простого кода для понимания – beroe

+0

Спасибо за дополнительный код! – user6348278