python中的列表理解空间删除

python中的列表理解空间删除,python,string,list,list-comprehension,Python,String,List,List Comprehension,我仍然在学习python中的列表理解,但我相信这正是我完成这项任务所需要的 我有一个字符串,我已将其转换为列表。如果两个相邻元素都是小写字母,我想删除空格 例如 我认为更适合这里: import re def remove_spaces(string): return re.sub(r'(?<=[a-z]) (?=[a-z])', '', string) print(remove_spaces('Bartho lemew The Rhinoceros')) # Barthole

我仍然在学习python中的列表理解,但我相信这正是我完成这项任务所需要的

我有一个字符串,我已将其转换为列表。如果两个相邻元素都是小写字母,我想删除空格

例如

我认为更适合这里:

import re

def remove_spaces(string):
    return re.sub(r'(?<=[a-z]) (?=[a-z])', '', string)

print(remove_spaces('Bartho lemew The Rhinoceros'))
# Bartholemew The Rhinoceros
重新导入
def删除_空格(字符串):

返回re.sub(r’(?与另一个答案非常相似

import re
a='Bartho lemew The Rhinoceros asdas'
print(re.sub('([A-Z][a-z]*)(\s)([a-z])(\w*)',r'\1\3\4',a))

我认为正则表达式对于初学者的stackoverflow问题有点过分夸大了。对于这个问题,尽管它们绝对是正确的选择。也就是说,你还要求提供解决问题的列表理解,我该拒绝谁呢

def remove_spaces(s):
    s = s.join(['A', 'A'])
    return ''.join([c for i, c in enumerate(s)
                        if c!=' ' or not (s[i-1]+s[i+1]).islower()][1:-1])

你可以在你的字符串上做一个空格分割,这将把你的句子放入一个没有空格的列表中。你甚至不必尝试用列表理解来做这件事。输出中的
'u'
来自哪里?
def remove_spaces(s):
    s = s.join(['A', 'A'])
    return ''.join([c for i, c in enumerate(s)
                        if c!=' ' or not (s[i-1]+s[i+1]).islower()][1:-1])