2024-09-27 17:32:58 发布
网友
所以我们遇到了一个问题,给定一个文本格式的正反词词典,我们必须把它转换成字典({}),我只是想知道除了把所有的单词和正负号都复制到列表中之外,还有没有更好的方法可以做到这一点。比如使用for循环。谢谢您! 数据是这样在一个txt文件中呈现给我们的
tasty 2.52 gracious 2.52 joyful 2.64
我们要做的就是把这个打印出来
这就是我现在拥有的
您已经快到了,但是您必须执行main函数并调整添加到字典中的方式。此时执行此操作的方式将为文件中的每个项创建一个条目,只剩下最后一个条目。在
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', 'joyful': ' 2.64', 'gracious': ' 2.52'}
如果您需要value为数字,请将上面的更改为:
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数组:
df.values
编辑: 因为您不能使用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]}
您已经快到了,但是您必须执行
main
函数并调整添加到字典中的方式。此时执行此操作的方式将为文件中的每个项创建一个条目,只剩下最后一个条目。在输入:
^{pr2}$输出:
如果您需要
value
为数字,请将上面的更改为:如果单词没有空格,或者可以将单词和值之间的分隔符值更改为唯一的值,则可以使用pandas。示例脚本:
然后,如果需要将这些值传递给其他值,
^{pr2}$df.values
将返回一个numpy数组:编辑: 因为您不能使用pandas,所以只需打开文件并直接遍历这些行。您必须根据需要实现错误捕获,但下面是一个简单的示例:
相关问题 更多 >
编程相关推荐