gpt4 book ai didi

python - 如何从文本文件中提取数字并将它们相乘?

转载 作者:行者123 更新时间:2023-11-30 23:02:57 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含 800 个单词,每个单词前面有一个数字。 (每个单词及其编号都在新行中。这意味着该文件有 800 行)我必须找到数字,然后将它们相乘。因为乘以大量 float 等于零,所以我必须使用对数来防止下溢,但我不知道如何操作。这是公式:cNB=argmaxlogP(c )+log P(x | c )

此代码不打印任何内容。

output = []

with open('c:/python34/probEjtema.txt', encoding="utf-8") as f:
w, h = map(int, f.readline().split())
tmp = []
for i, line in enumerate(f):
if i == h:
break
tmp.append(map(int, line.split()[:w]))
output.append(tmp)
print(output)

文件语言是波斯语。

文件片段:

0.00193986420950533460.03200775945683802巴里 0.002909796314258002重要 0.0038797284190106693Ø 0.0164888457807953440.0048496605237633370.0271580989330746860.005819592628516004更多 0.0029097963142580020.0058195926285160040.026188166828322017巴黎 0.0019398642095053346更多 0.0077594568380213390.002909796314258002

最佳答案

您可以使用regular expressions找到每行的第一个数字,例如

import re

output = []
with open('c:/python34/probEjtema.txt', encoding="utf-8") as f:
for line in f:
match = re.search(r'\d+.?\d*', line)
if match:
output.append(float(match.group()))

print(output)

re.search(r'\d+.?\d*', line) 查找每行中的第一个数字(整数或带有 . 的 float 。

这是一个不错的在线正则表达式测试器:https://regex101.com/ (用于调试/测试)。

/编辑:将正则表达式更改为 \d+.?\d* 以捕获整数和 float 。

关于python - 如何从文本文件中提取数字并将它们相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com