dict python中的词典文件

2024-06-17 08:05:42 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我们遇到了一个问题,给定一个文本格式的正反词词典,我们必须把它转换成字典({}),我只是想知道除了把所有的单词和正负号都复制到列表中之外,还有没有更好的方法可以做到这一点。比如使用for循环。谢谢您! 数据是这样在一个txt文件中呈现给我们的

tasty 2.52
gracious 2.52
joyful 2.64

我们要做的就是把这个打印出来

^{pr2}$

这就是我现在拥有的


Tags: 文件数据方法文本格式txt列表for字典
2条回答

您已经快到了,但是您必须执行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()

输入:

^{pr2}$

输出:

{'tasty': ' 2.52', 'joyful': ' 2.64', 'gracious': ' 2.52'}

如果您需要value为数字,请将上面的更改为:

lexicon[key]=float(value)

如果单词没有空格,或者可以将单词和值之间的分隔符值更改为唯一的值,则可以使用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数组:

^{pr2}$

编辑: 因为您不能使用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]}

相关问题 更多 >