《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'),
至此,与书中一样了!!!!!!!!!!!