0
我正在尝试编写一个将NumPy数组写入文件的函数。我想用Pythonic方法使用zip()
。以下代码不起作用;我试图将命名参数(其中的值是1D NumPy数组,键是标签)**data_lists
转换为zip函数所需的数组列表。Zip()已经初始化的列表
def write_data_file(filename,**data_lists):
with open("{}.dat".format(filename), "w") as f:
header = "#"
for lst in data_lists:
header = "{} {} \t".format(header,lst)
header = "{} \n".format(header)
f.write(header)
# The following line of code does not work
for row in zip(data_lists[lst] for lst in data_lists):
f.write("\t".join([str(item) for item in row])+ "\n")
我不能分配到列表第一如下:
trial = [data_lists[lst] for lst in data_lists]
zip(trial)
这并没有什么作为审判被视为一个参数。我如何获得zip()
以单独处理trial
中的项目或以其他方式完成此项目?
很好的注意'.values()'方法。我之前并不知道这一点。 – duhamp
@duhamp:如果你使用的是Python 2.7,那么你总是需要'.viewvalues()'来避免临时'列表'。在Py 3.x上,'.values()'是正确的。 '.values()'适用于Py2.7,这只是浪费。你也应该知道获取键/值对的'.items()'/'.viewitems()'。 '.keys()'/'.viewkeys()'也存在,但你通常不需要它(你可以直接迭代'dict'来获得键),除非你使用类似'set'的特性'dict'的意见。 – ShadowRanger