因此我们遇到了一个问题,即在给定txt格式的正面和负面单词的词汇时,我们不得不将其转换为字典({}),我只是想知道是否有更好的方法来做到这一点除了将所有单词和正数和负数复制到列表中。比如使用for循环。谢谢! 数据在txt文件中以这样的形式呈现给我们
var
我们要做的就是在dict中打印出来
tasty 2.52
gracious 2.52
joyful 2.64
这就是我现在所拥有的
答案 0 :(得分:0)
如果您的字词没有空格,或者您可以将字词和值之间的分隔符值更改为唯一字母,则可以使用pandas。示例脚本:
import pandas as pd
df = pd.read_csv(r"test.txt", sep=' ', header=None, names=['Word', 'Value'])
print(df.head())
# returns:
#
# Word Value
# 0 tasty 2.52
# 1 gracious 2.52
# 2 joyful 2.64
然后,如果您需要将值传递给其他值,df.values
将返回值的numpy数组:
print(df.values)
# returns:
#
# [['tasty', 2.52]
# ['gracious', 2.52]
# ['joyful', 2.64]]
编辑: 由于您无法使用pandas,只需打开文件并直接遍历这些行。您必须根据需要实现错误捕获,但这只是一个简单的示例:
with open('test.txt', 'r') as f:
contents = f.readlines()
{word: value for word, value in [line.rstrip('\n').split(' ') for line in contents]}
答案 1 :(得分:0)
您几乎就在那里,但您必须执行main
功能并调整添加到词典中的方式。你现在这样做的方式是为文件中的每个项目创建一个条目,只留下最后一个项目。
import sys
def main():
filename = sys.argv[-1]
print_lexicon(filename)
def print_lexicon(filename):
lexicon = {}
with open(filename, "r") as file:
for line in file:
key,value = line.strip().split(',')
lexicon[key]=value
print (lexicon)
if __name__ == "__main__":
main()
输入:
tasty, 2.52
gracious, 2.52
joyful, 2.64
输出:
{'tasty': ' 2.52', 'joyful': ' 2.64', 'gracious': ' 2.52'}
如果您需要将value
设为数字,请将上述内容更改为:
lexicon[key]=float(value)