#python #for-loop
#python #для-цикла
Вопрос:
sample = ['AAAA','ABCB','CCCC','DDEF']
Мне нужно исключить все элементы, где каждый символ идентичен самому себе в элементе, например. ААААА, 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)
распечатать образец
Ответ №1:
sample = ['AAAA','ABCB','CCCC','DDEF']
output = [sublist for sublist in sample if len(set(sublist)) > 1]
ОТРЕДАКТИРУЙТЕ, чтобы ответить на комментарий.
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))]
Комментарии:
1. Мне нужна была помощь с расширением этой проблемы. Если бы у меня был список списков.. [[‘CGG’, ‘ATT’], [‘ATT’, ‘CCC’]], как я могу исключить пары, где одна из пар содержит все идентичные элементы? Итак, здесь вывод будет [[‘CGG’, ‘ATT’]]
2. Говоря «все одинаковые», вы имеете в виду, что хотите удалить [‘ATT’, ‘CCC’], потому что в нем есть ‘CCC’?
Ответ №2:
sample = ['AAAA','ABCB','CCCC','DDEF']
sample1 = []
for i in sample:
if len(set(i)) > 1:
sample1.append(i)
Комментарии:
1. Мне нужна была помощь с расширением этой проблемы. Если бы у меня был список списков.. [[‘CGG’, ‘ATT’], [‘ATT’, ‘CCC’]], как я могу исключить пары, где одна из пар содержит все идентичные элементы (например, CCC)? Итак, здесь вывод будет [[‘CGG’, ‘ATT’]]