biogeek biogeek - 1 month ago 8
Python Question

How to remove elements from list when each character is identical (Python)?

sample = ['AAAA','ABCB','CCCC','DDEF']


I need to eliminate all elements where every character is identical to itself in the element eg. AAAAA,CCCCC

output = ['ABCB','DDEF']

sample1 =[]
for i in sample:
for j in i:
if j == j+1: #This needs to be corrected to if all elements in i identical to each other i.e. if all "j's" are the same
sample1.pop(i)


print sample

Answer
 sample = ['AAAA','ABCB','CCCC','DDEF']
 output = [sublist for sublist in sample if len(set(sublist)) > 1]

EDIT to answer comment.

sample = [['CGG', 'ATT'], ['ATT', 'CCC']]
output = []
for sublist in sample:
    if all([len(set(each)) > 1 for each in sublist]):
        output.append(sublist)

# List comprehension (doing the same job as the code above)
output2 = [sublist for sublist in sample if 
           all((len(set(each)) > 1 for each in sublist))]
Comments