我试图把两个不同的东西绑在一起。 1.在列表中查找和打印唯一项目。 2.传递一个int值并在前n个项目中打印唯一项目
我有两件事可行,但不能同时将列表拆分为n的子列表:
def find_uniques(3):
lista = ['a','a','b','c','d','c','e','d','e','f','f']
list = [lista [x:x + n] for x in xrange(0,len(lista),n)]
打印列表
[['a','a','b'],['c','d','c'],['e','d','e'],['f' ,'f']]
#2nd part适用于整个列表
如果lista.count(a)== 1]
,打印[a for a lista
[ 'B']
#如何让第二部分在子列表上工作,并从每个子列表中返回唯一的字符。
我正在寻找的输出: [['b'],['d'],['d']]
答案 0 :(得分: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)