Удаление всего включало все пробелы в списке, который не равен желаемой строке - PullRequest
2 голосов
/ 13 мая 2019

У меня есть этот список, содержащий кучу строк:

list = ['hi','         how        ','are','you']

Как я могу удалить каждый элемент в списке (и соответствующий текст в этих строках), который не равен определенной строке, такой как"hi"

, так что окончательный список

list = ['hi']

в качестве первого шага я попытался удалить пробелы:

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

newList = []


for i in list:
    str(i).replace(' ','')
    newList.append(i)

но я продолжаю получать те же результаты с большими пробелами между ними, есть ли способ удалить пробелы и любые строки, которые не соответствуют моей указанной строке в одном эффективном алгоритме?

Ответы [ 3 ]

1 голос
/ 13 мая 2019

Заменить space на '' Сравните каждый элемент и 'hi'.

list = ['hi','         how        ','are','you']
list = [x.strip(' ') for x in list]
print (list)
list = [x for x in list if 'hi' == x]
print (list)

Результат:

['hi', 'how', 'are', 'you']
['hi']
0 голосов
/ 13 мая 2019

используйте strip() вместо replace() это проще

mylist = ['hi','         how        ','are','you']

stripped_list = [x.strip() for x in mylist]  # remove spaces
final_list = [x for x in stripped_list if x == 'hi']  # filter list

print(stripped_list)
print(final_list)

вывод:

['hi', 'how', 'are', 'you']
['hi']
0 голосов
/ 13 мая 2019
  1. Создать пустой список (в данном случае, 'hi_list')
  2. Просмотрите все значения в списке, ища 'hi'
  3. Если вы найдете«привет», добавьте его в «hi_list»

    hi_list = list()
    
    for x in range(0, len(list)):
    if (list[x] == 'hi'):
        hi_list.append(list[x])
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...