Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用字典代替俚语_Python - Fatal编程技术网

Python 用字典代替俚语

Python 用字典代替俚语,python,Python,为了解决我的问题,我一直在遵循此链接,但我在这一过程中遇到了困难: 我有一个超过20000行的系列,每行有文本字符串(短消息)。以及键和值的字典,因此每当序列词与字典中的键匹配时,我希望用字典中的值替换序列词: 这是我的密码: import pandas as pd df = pd.read_csv("file.csv") dictionary = {'u': 'you','pic':'picture', .....} list_string = the_string['message'].

为了解决我的问题,我一直在遵循此链接,但我在这一过程中遇到了困难:

我有一个超过20000行的系列,每行有文本字符串(短消息)。以及键和值的字典,因此每当序列词与字典中的键匹配时,我希望用字典中的值替换序列词:

这是我的密码:

import pandas as pd
df = pd.read_csv("file.csv")
dictionary = {'u': 'you','pic':'picture', .....} 

list_string = the_string['message'].str.split()

for i,word in enumerate(list_string):
    if word in the_dictionary.keys():
        list_string[i] = the_dictionary[word]
当我运行这段代码时,除了序列没有更新之外,我没有得到任何错误。我错过了什么?我还在学习python,所以我被困在这里了

当运行此程序时,我不会得到任何错误,除非该系列没有得到更新

什么东西没有得到更新<代码>列表字符串或
字符串
?'因为抛开您声明
dictionary
然后在循环中使用
u dictionary
的事实不谈,它确实会更新我这边的
list\u string
。如果您想
也更新\u字符串
,那么您还需要更新它-您可以这样做:

the_string = " ".join(list_string)

但是,请注意,您当前的支票没有考虑大小写,这意味着您将把
u
固定到
you
,但是
u
不会变成
you

您不会在第一个代码片段中关闭字符串。请先解决您的问题。@WillemVanOnsem-ok什么没有更新,列表
list\u字符串
或原始字符串
字符串['message']
?它应该更新列表。对于字符串,使用
'.join(list\u string)
BTW,您可以将循环简化为
list\u string=[the\u dictionary.get(word,word)For word in list\u string]
@tobias:list\u string