1.列表生成式中的循环结构只能用for 语句吗
2.列表生成式只适合于快速生成数值类型的列表吗
第一个好像是的,我不太确认,因为没用过除了for以外的生成式
第二个不是的,非数值的也可以
1.不然呢,你想用while循环吗
2.可以是任何类型的,比如这样生成一个空的二维list
a=[[] for _ in range(10)]
一般的就是用for语句的,但是 [*运算符] 也能算是推导式,见下第3例 列表也可以作推导式的元素
>>> [*range(1,9)]
[1, 2, 3, 4, 5, 6, 7, 8]
>>> [*map(lambda x:x*x,range(8))]
[0, 1, 4, 9, 16, 25, 36, 49]
>>> [*map(lambda x:[x*x],range(8))]
[[0], [1], [4], [9], [16], [25], [36], [49]]
for语句更常用吧,其他的没怎么见过;
不止适合数值类型的,大部分都可以