#第一段,语法糖

l = [i for i in range(10)]
print(l)
#接下来,一般的写法是如下的

l = []
for i in range(10):
    l.append(i)
print(l)

以上两种方法都是一样的,但是第一段语法糖明显更简单
列表是上面这样加的,那么字典其实也一样,可以像下面这样生成

d = {i:i+10 for i in range(10)}

d = {}
for i in range(10):
    d[i] = i+10

可是接下来是一个很特别的地方,上面我们是中括号和大括号,可是如果使用小括号就不行了哟!可是接下来是一个很特别的地方,上面我们是中括号和大括号,可是如果使用小括号就不行了哟!

使用小括号,返回的是生成器,当你print出来的时候,其实是显示一段内存地址的,他无法直接打印就获得内部的值。这里就需要调用next()方法,或者使用for循环.

其实for循环的本质就是调用next方法哦!

a = (i for i in range(10))
#这里会返回生成器哦,不会返回内部的值哦!
print(a)#打印的是一个内存地址哦
print(f'next:{a.__next__()}')#这样才可以哦!
#如上,使用__next__()方法获得生成器内的值,他会获得生成的第一个值,也就是0
#并且在获得0之后,生成器里就没有0了,也就是说,你获得了,我就给你了,我不要了!
#或者如下这样循环打印
print('然后循环打印试试,我们没有了第一个数字0')
for i in a:
    print(i)
最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏