第一个问题,内置函数frozenset()接收的参数是一个可迭代对象,可为什么下面的写法没有报错呢,我对map()函数的理解是map()函数遍历第二个参数然后放到第一个参数函数里,最后返回一个列表,如果是这样的话应该会报错的啊。
第二个问题,把上面的结果传到list()函数中报错了,这又是什么原因呢。
刚开始学python,谢谢各位大大~~
环境python3,windows7
第一个问题,内置函数frozenset()接收的参数是一个可迭代对象,可为什么下面的写法没有报错呢,我对map()函数的理解是map()函数遍历第二个参数然后放到第一个参数函数里,最后返回一个列表,如果是这样的话应该会报错的啊。
第二个问题,把上面的结果传到list()函数中报错了,这又是什么原因呢。
刚开始学python,谢谢各位大大~~
环境python3,windows7
你用的是 python 3 吧,以后提问问题最好把环境说清楚
python3 里面 map 不再是一个函数,而是一个类,返回的 map 对象是一个迭代器,所以你在执行第一句的时候并没有报错;而在你将其传给 list 的时候,迭代器执行了,就报错了
3 回答2.9k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
4 回答1.7k 阅读
3 回答1.5k 阅读
2 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
没报错是因为map的__init__定义如下,所以list是合法的参数,但是启动时自然frozenset就报错了:
Python 2 map 返回
list
object, Python 3 map 返回map
object 且只能使用一次:如果想和以前一样,
Wraps map() in a list call. It also changes map(None, x) to list(x). Using from future_builtins import map disables this fixer.
: