将字符串添加到字典中的所有键(Python)
Posted
技术标签:
【中文标题】将字符串添加到字典中的所有键(Python)【英文标题】:Adding a string to all keys in dictionary (Python) 【发布时间】:2018-07-18 19:05:41 【问题描述】:我是 Python 和 Pyspark 的新手,我正在练习 TF-IDF。 我从 txt 文件中的句子中拆分了所有单词,删除了标点符号,删除了停用词列表中的单词,并使用以下代码将它们保存为字典。
x = text_file.flatmap(lambda line: str_clean(line).split()
x = x.filter(lambda word: word not in stopwords
x = x.reduceByKey(lambda a,b: a+b)
x = x.collectAsMap()
我有 10 个不同的 txt 文件用于同一进程。我想在字典中的键中添加一个类似"@d1"
的字符串,这样我就可以指出该键来自文档 1。
如何将"@1"
添加到字典中的所有键中?
基本上我的字典是这样的:
'word1': 1, 'word2': 1, 'word3': 2, ....
我希望它是:
'word1@d1': 1, 'word2@d1': 1, 'word3@d1': 2, ...
【问题讨论】:
【参考方案1】:试试dictionary comprehension:
k+'@d1': v for k, v in d.items()
在 Python 3.6+ 中,您可以使用 f-strings:
f'k@d1': v for k, v in d.items()
【讨论】:
【参考方案2】:您可以使用dict
构造函数来重建字典,将文件编号附加到每个键的末尾:
>>> d = 'a': 1, 'b': 2
>>> file_number = 1
>>> dict(("@".format(k,file_number),v) for k,v in d.items())
>>> 'a@1': 1, 'b@1': 2
【讨论】:
【参考方案3】:我有一个如下所示的 dict 列表
def prefix_key_dict(prefix,test_dict):
res = prefix + str(key).lower(): val for key, val in test_dict.items()
return res
temp_prefix = 'column_'
transformed_dict = [prefix_dict(temp_prefix,each) for each in table_col_list]
转换后的 json 如下所示
【讨论】:
以上是关于将字符串添加到字典中的所有键(Python)的主要内容,如果未能解决你的问题,请参考以下文章