[英]Python: Remove selected whitespace from string
我想删除字符串中的某些选定空白。 可以说我有一个空白索引要删除:
w_index = [1,3]
和一个字符串:
str = 'a b c d'
我需要删除第一个和第三个空格,所以最终结果是:
str = 'ab cd'
谢谢。
# Input
w_index = [1,3]
str = 'a b c d'
# Solution
space_pos = [p for p in range(len(str)) if str[p]==' ']
w_pos = [space_pos[x-1] for x in w_index]
''.join(str[x+1:y] for x,y in zip([-1]+w_pos, w_pos+[len(str)]))
# result: 'ab cd'
您无法在python中更改字符串。 你有什么要做的就是创建一个新的字符串并连接所有的子字符串。 你的索引阵列上循环,并创建从一开始的子串的第一个索引(不包括),第一+ 1至第二等等。 在最后你结合的字符串。
Python索引从零开始,因此我调整了w_index列表。
w_index = [0,2]
另外, str
是Python中的特殊名称,因此我重命名了您的字符串变量。
string = 'a b c d'
现在创建一个新列表wpos
,它给出每个空白在string
的位置。
wpos = [i for (i, char) in enumerate(str) if char == ' ']
print "wpos:", wpos
输出:
>> wpos: [1, 3, 5]
然后,我们可以反向遍历w_index并通过其位置删除空格。 我们无法像列表一样pop()
字符串,因此请将字符串一分为二,然后将其重新组合在一起以创建新字符串。
for i in w_index[::-1]:
pos = wpos[i]
string = string[:pos] + string[(pos+1):]
print string
输出:
>> ab cd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.