python map()函数问题

使用map()函数生成一个值D但是检测D的长度时,只能测一次,一次之后D似乎被清空了。这是什么机制。如何让这个D包含的信息保留。

不知道你的dataSet 是什么数据,是否是从数据库取出来的结果游标,
如果是的 那么dataSet 只能用一次,用空之后它就为空了
检测方法
D = map(set,dataSet)
print dataSet #看看这里的 dataSet 是否为空了
如果是以上说的情况 很容易解决
操作之前 给 给个变量 接纳一哈 这个结果集
tmp = dateSet
D = map(set,tmp)
print len(list(D))
print len(list(D))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-24
我今天也遇到这个问题了,可能是map函数返回值被回收
我在查资料后发现在python3版本map函数返回值是迭代器,而在python2版本map函数的返回值是列表

所以如果你使用的是python3版本,只需要将:D = map(set,dataSet)
修改为:D = list(map(set,dataSet))
第2个回答  2019-05-16
我的环境也是这样的,你现在知道这是什么原因?
第3个回答  2016-07-19
你环境有问题吧,把D打印出来看看。