2017-04-26 56 views
0

我有一個包含標記的列表的列表。一些令牌包含特殊字符,我想用空格替換。但是我的代碼沒有工作:python字符串替換不工作

mylist = [['hi','how','are','you','forward\xcato\xcahearing\xcafrom\xcayou\xcasoon'], 
      ['good','morning']] 

mycode的:

new_list = [] 
for l in mylist: 
    l2 = [i.replace('\xca', ' ') for i in l] 
    new_list.append(l2) 
new_list[0] 
>>> ['hi','how','are','you','forward\xcato\xcahearing\xcafrom\xcayou\xcasoon'] 

不知道爲什麼它沒有工作。

+0

我使用Python 3.5.x的,並且對我的作品。輸出:['嗨','如何','是','你','轉發給你很快聽到'] – manelfp

+0

即時通訊使用jupyter筆記本 – jxn

+0

也適用於Python 2.7。 – roganjosh

回答

0

這個工作在Jupyter太:

mylist = [['hi','how','are','you','forward\xcato\xcahearing\xcafrom\xcayou\xcasoon'], 
      ['good','morning']] 

print ([[sentence.translate(str.maketrans("\xca", " ")) for sentence in item] for item in mylist]) 
0

我的代碼會從你的字符串中刪除所有特殊字符!不僅僅是'\ xca',你將會有一個修剪字符串。 (無庫需求):

your_list = [['hi','how','are','you','forward\xcato\xcahearing\xcafrom\xcayou\xcasoon'], 
['good','morning']] 


def special_characters_finder(text): 

    renew_word = [] 

    for char in text: 
     try: 
      char.encode('ascii') 

     except UnicodeEncodeError: 
      renew_word.append(' ') 

     else: 
      renew_word.append(char) 

    return ''.join(renew_word) 


buffer_output = [] 
for box in your_list: 
    for item in box: 
     get_list = special_characters_finder(item) 
     buffer_output.append(get_list) 

print(buffer_output) 

OUTPUT:

['hi', 'how', 'are', 'you', 'forward to hearing from you soon', 'good', 'morning']