Python:替换" - "用空格

时间:2016-03-18 03:24:58

标签: python string list replace

我坚持要更换" - "用Python中的空格。我已经搜索了Stack Overflow并尝试了下面的代码,但它没有做我想做的事情。

unicode_string = unicode(some_string, 'utf-8')
if unicode_string != some_string:
    some_string = 'whatever you want it to be'

这是我的输出:

import string

text1 = ['why-wont-these-dashes-go-away']
for i in text1:
 str(i).replace("-", " ")
print "output 1: " 
print text1

text2 = ['why-wont-these-dashes-go-away']
text2 = [x.strip('-') for x in text2]
print "output 2: " 
print text2

text3 = ['why-wont-these-dashes-go-away']
text3 = [''.join(c for c in s if c not in string.punctuation) for s in text3]
print "output 3: " 
print text3

text4 = ['why-wont-these-dashes-go-away']
text4 = [' '.join(c for c in s if c not in string.punctuation) for s in text3]
print "output 4: " 
print text4

这就是我想要的:

output 1: 
['why-wont-these-dashes-go-away']
output 2: 
['why-wont-these-dashes-go-away']
output 3: 
['whywontthesedashesgoaway']
output 4: 
['w h y w o n t t h e s e d a s h e s g o a w a y']

我知道text1,text2和text3是每个列表,其中一个项目是一个字符串。它可能是我忽略的小事,任何想法?

7 个答案:

答案 0 :(得分:3)

text1是一个列表,该列表有一个元素,它是一个字符串'为什么这些破折号不会消失'在第0个位置。所以,只需使用:

text1 = [text1[0].replace('-',' ')]

print text1
['why wont these dashes go away']

答案 1 :(得分:3)

您有以下错误:

方法1:您replace的返回值分配给任何变量

方法2:Strip仅从字符串的开头和结尾剥离字符

方法3和4:您使用空字符串('')或空格(' '),每个字加入每个字符。

您可以尝试以下方法:

text1 = [x.replace('-', ' ') for x in text1]

或者这个:

text1 = [' '.join(x.split('-')) for x in text1]

答案 2 :(得分:2)

你在循环中进行的操作对列表中的数据没有影响,你应该做的是用你的数据创建一个新的列表:

[s.replace('-', ' ') for s in text1]

答案 3 :(得分:0)

您的第一个示例无效,因为将i转换为str会生成该字符串的副本,然后您将其修复。只是做:

i.replace("-", " ")

您的第二个示例使用strip,这不是您想要的。

你的第三个和第四个例子消灭了破折号,这也是行不通的。

答案 4 :(得分:0)

你的[' why-wont-these-dashes-go-away']已经是一个列表元素。所以你只需要做

text1 = ['why-wont-these-dashes-go-away']
print text1[0]..replace('-',' ')

答案 5 :(得分:0)

您可以在-join

上拆分

在输出1之后,您还需要重新分配列表的值

for i,s in enumerate(text1):
    text1[i] = ' '.join(s.split('-')) 

答案 6 :(得分:0)

list1 = ['why-wont-these-dashes-go-away', 'a-sentence-with-dashes']
list1 = [text.replace('-',' ') for text in list1]
print list1

Output: ['why wont these dashes go away', 'a sentence with dashes']