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