我坚持要更换" - "用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是每个列表,其中一个项目是一个字符串。它可能是我忽略的小事,任何想法?
答案 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']