2016-10-11 61 views
0

我試圖將兩個不同的東西綁在一起。 1.查找並打印列表中的唯一項目。 2.傳遞一個int值並打印獨特的項目中前n項使用列表範圍的傳遞值(子列表)在列表中找到唯一項目

我有工作的兩件事情,但不結合,分裂名單成n的子列表:

高清find_uniques(3):

LISTA = [ '一個', 'A', 'b', 'C', 'd', 'C', 'E', 'd', 'E', 'f','f']

lists = [xa(x,len(lista),n)中x的[lista [x:x + n]]

打印列表

[[ '一個', 'A', 'B'],[ 'C', 'd', 'C'],[ 'E', 'd', 'E'],[ 'F', 'F']]

#第二部分整個列表上工作

打印[一個用於在LISTA如果lista.count(A)= = 1]

['b']

#我如何獲得第二部分工作的子列表,並讓我從每個子列表中返回唯一的字符。

我要找的輸出: [ '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