删除所有内容,包括列表中不等于所需字符串的所有空格

时间:2019-05-13 00:30:36

标签: python list

我有一个包含一串字符串的列表:

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

如何删除列表中与特定字符串(例如“ hi”)不同的每个元素(以及这些字符串中的相应文本)

使最终列表为

list = ['hi']

第一步,我尝试剥离空格:

这很奇怪,因为我尝试使用以下方法剥离空格元素:

newList = []


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

但是在中间有大空格的情况下,我仍能得到相同的结果,有什么方法可以在一种有效的算法中删除空格和与我指定的字符串不匹配的任何字符串?

3 个答案:

答案 0 :(得分:1)

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']

答案 1 :(得分:0)

  1. 创建一个空列表(在本例中为“ hi_list”)
  2. 浏览列表中的所有值,寻找“ hi”
  3. 如果找到“ hi”,请将其附加到“ hi_list”

    hi_list = list()
    
    for x in range(0, len(list)):
    if (list[x] == 'hi'):
        hi_list.append(list[x])
    

答案 2 :(得分:0)

使用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']