正在尝试获取一些代理 ip,在清洗数据的时候发现了一个百思不得其解的东西。如下图所示:
在图中箭头标注的地方,用列表[],则终端输出的内容是正常的,符合预期的:

但如果将图中箭头标注的地方,换成 tuple(),终端输出的内容就不知道是什么东西了:

get_ips()返回的是自建的一个类 ResultContainer,可以看成是一个列表,其他部分的代码没啥特殊的。
请教大神这是什么原因啊!!!求教!
正在尝试获取一些代理 ip,在清洗数据的时候发现了一个百思不得其解的东西。如下图所示:
在图中箭头标注的地方,用列表[],则终端输出的内容是正常的,符合预期的:

但如果将图中箭头标注的地方,换成 tuple(),终端输出的内容就不知道是什么东西了:

get_ips()返回的是自建的一个类 ResultContainer,可以看成是一个列表,其他部分的代码没啥特殊的。
请教大神这是什么原因啊!!!求教!
1
marsala OP 而且也仅在这里遇到了这样的情况,在其他地方用[(i,i) for i in range(100)]这样推导是没问题的
|
2
Owenjia Oct 1, 2019 圆括号那个是生成器,不是推导式,没有元组推导式这种东西。
|
3
ysc3839 Oct 1, 2019 via Android
遇到不知道的东西请善用搜索,一搜索就能知道是 generator。
|
4
cyrbuzz Oct 1, 2019
()的写法写出来是生成器,你用到的时候才会生成数据,不用它就不生成。
[]的写法写出来就是个列表,数据都生成好了。 大体可以理解成 `range(8)` 和 `list(range(8))` 的区别。 |
5
conn4575 Oct 1, 2019 via Android
这不是 python 里最有名的特性生成器表达式吗?我严重怀疑你是怎么学 python 的。。
|
6
liukrystal Oct 1, 2019
前面那个是生成器,不是列表推导式。。。
|
7
zuoakang Oct 2, 2019
|