《Python數據處理》7.2.1筆記:zip函數輸出爲“zip object at 0x00000272CAEDD488”
一、現象
書中位置:2合併問題與答案的 第三個代碼處:
#變量名有不同,原爲zipped_data
zip_data = []
for drow in new_data:
zip_data.append(zip(head_row, drow))
#作者是直接打印的
zip_data[0]
但是直接打印的內容是
<zip object at 0x000001B2B4BD2F08>
將之進行遍歷:
<zip object at 0x000001B2B4BD2F08>
<zip object at 0x000001B2B4BD2FC8>
<zip object at 0x000001B2B4BD40C8>
<zip object at 0x000001B2B4BD4188>
<zip object at 0x000001B2B4BD4248>
<zip object at 0x000001B2B4BD4308>
<zip object at 0x000001B2B4BD43C8>
返回zip對象而不是內容
二、原因
參加《python中使用zip函數出現》,原因是爲了節約內存,python3基於此對此進行了優化,輸出只輸出對象的內存位置而不打印出來。而在python2中可以直接輸出到屏幕
三、解決辦法
(一)增加一個list()
for data in zip_data:
print(list(data))
但是這樣輸出與書中不一致,且不夠美觀
(二)進行美化
代碼:
import pprint
for data in zip_data:
pprint.pprint(list(data))
美化後:
(['TN12_3',
'Person 3 who slept under net',
'Who slept under this mosquito net last night?'],
'NA'),
至此,與書中一樣了!!!!!!!!!!!