gpt4 book ai didi

python - 从文件中读取特定值并将它们存储在列表 python 中

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:01 25 4
gpt4 key购买 nike

我有一个格式如下的文件:

-2000 -2000 -2000 # (*THE FRAME, origin point*), 1
-2000 379 -2000 # 2
2000 379 -2000 # 3
2000 -2000 -2000 # 4
-2000 -2000 -2000 # 1
j
2000 379 -1190 # 7
2000 -2000 -1190 # 8
-2000 -2000 -1190 # 5

我需要用 python 读取这个文件并将其存储在以下格式的列表中:

[[[-2000, -2000, -2000], [-2000 379 -2000], [2000, 379, -2000], [2000, -2000, -2000], [-2000, -2000, -2000]],[[2000, 379, -1190], [2000, -2000, -1190], [-2000, -2000, -1190]]] 

到目前为止,我已经读取了文件并将值存储在列表中

file = open('filename', 'r')
vlist = file.readlines()
file.close

然后我将每个“j”值转换为 [-1,-1,-1] 并将该值用作列表之间的分隔符。

points = []
points = [list(map(int,elem.split())) if elem.strip().lower() != "j" else [-1, -1, -1] for elem in vlist]

然后使用 itertools 我能够将此列表拆分成组,每次 [-1,-1,-1] 出现在列表中时:

pointLists = [list(group) for val, group in groupby(points, lambda x: x == [-1,-1,-1]) if not val]

我相信这会给我我想要的输出,但是它不适用于我在顶部显示的文件示例,因为它不会删除 #'s 和它后面的值。

我不确定如何从列表中删除#'s 和后面的值,所以任何帮助都会很有帮助谢谢。

enter code here

最佳答案

因为您实际上不需要 [-1,-1,-1] 来获得最终结果:

with open('stuff') as f:
list1 = [line.strip().split('#')[0].split() for line in f]
print [[map(int, var) for var in g] for k, g in groupby(list1, key=lambda x: len(x)==1) if k != 1]

无论每行有多少列或行,这都有效。

关于python - 从文件中读取特定值并将它们存储在列表 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606362/

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