我目前正在尝试执行计算大指数幂的代码,而不是对它们进行计算,而是记录它们的对数。我有一个包含1000行的文件。每行包含两个用逗号分隔的整数。我卡在了尝试从数组中删除引号的地方。我尝试了许多方法,但都没有成功。这是我的代码:
myLib中的函数split()需要两个参数,其中一个是列表,另一个是要将原始列表分成多少个元素。然后将其执行并将较小的列表附加到新列表中。
但输出看起来像这样:
myLib中的函数split()需要两个参数,其中一个是列表,另一个是要将原始列表分成多少个元素。然后将其执行并将较小的列表附加到新列表中。
import math
import myLib
i = 0
record = 0
cmpr = 0
with open("base_exp.txt", "r") as f:
fArr = f.readlines()
fArr = myLib.split(fArr, 1)
#place get rid of quotes
print(fArr)
while i < len(fArr):
cmpr = int(fArr[i][1]) * math.log(int(fArr[i][0]))
if cmpr > record:
record = cmpr
print(record)
i = i + 1
这是我的数组的样子:
[['519432,525806\n'], ['632382,518061\n'], ... ['172115,573985\n'], ['13846,725685\n']]
我试图绕过二维数组,尝试了以下方法:
i = 0
record = 0
cmpr = 0
with open("base_exp.txt", "r") as f:
fArr = f.readlines()
#fArr = myLib.split(fArr, 1)
fArr = [x.replace("'", '') for x in fArr]
print(fArr)
while i < len(fArr):
cmpr = int(fArr[i][1]) * math.log(int(fArr[i][0]))
if cmpr > record:
record = cmpr
print(i)
i = i + 1
但输出看起来像这样:
['519432,525806\n', '632382,518061\n', '78864,613712\n', ...
当前状态下的数字不能被视为整数或浮点数,因此这也不起作用...
[int(i) for i in lst]
对于数组本身的期望输出应该是这样的,这样我就可以选择其中一个数字并进行操作:
[[519432,525806], [632382,518061], [78864,613712]...
我非常感谢你的帮助,因为我对Python和编程还很陌生。
谢谢你抽出时间。
[list(line.split(' ')) for line in StringIO(fArr)]
来从数组中删除引号。 - Eskapp