【发布时间】:2018-12-26 21:00:04
【问题描述】:
我目前正在尝试执行用大指数评估幂的代码,而不是计算它们,而是记录它们的日志。我有一个包含 1000 行的 file。每行包含两个以逗号分隔的迭代器。我被困在我试图从数组中删除引号的地方。我尝试了很多方法,但都没有奏效。这是我的代码:
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)] -
你想要的输出是二维数组吗?
标签: python arrays multidimensional-array quotes