小智的魔法书-python列表的range()工具

为什么我们不能创造出超越光速的飞行器?有一个可能是:我们本身就是以光速在“智”宇宙中狂奔着。

“坐地日行八万里”,在我们形成生命的那一瞬间,我们便拥有了地球的自转速度,除了这个速度还有地球围绕太阳的速度,还有太阳围绕银河飞行的速度,还有银河围绕更大质量星系的飞行速度,还有还有还有……,这些速度按角度折算后叠加的结果是怎样?不要局限于E=M*C*C和宇宙膨胀说,仰望星空,“智”宇宙给予我们的不仅仅是烟波浩渺的震撼。

收。

今天我们继续python的内容,前面的篇章,列举了很多列表例子,比如:a=[1,2,3,4],如果列表盒子里需要有更多的元素,那么我们要怎么办,依次写下去吗?也可以,不过这个难度虽然比超越光速简单,但我们不必悲催地一个一个地写出来。

python提供了range()工具,这个工具呢,可以很方便地让我们得到一个很多元素的列表,怎么用呢,看例子。

>>> range(9)range(0, 9)>>> list(range(9))[0, 1, 2, 3, 4, 5, 6, 7, 8]>>>

当我们想创建一个9个元素的列表,那么我们可以用list(range(9)),这个时候我们不必一个一个地将列表里的元素写出来,很方便吧。

这个range()工具的括号里面最多可以包含三个内容,分别用逗号隔开,如:

range(a,b,c)

这里的a代表起点,默认值是0,若忽略不写时,c也不能写出来。

这里的b代表终点,它是必须写的内容,如上面的例子range(9),数字9即是b的值。

这里的c代表增项,即以什么样的增项从a到b,默认值为1,在上面的例子中,range(9)等同于range(0,9,1),写法上只是忽略了第一位置的0和末尾的1,而不是range(9,1),只忽略不写了第一位置的0。

>>> list(range(9,1))[]>>>

使用list(range(9,1))后,得到一个空列表,很显然range(9,1)不是range(9)。

range(9,1)等同于什么?range(9,1)等同于range(9,1,1),忽略不写的是最末位的1,可以这样理解:内容c是最优先可忽略的,其次是内容a,这个要记牢。

>>> list(range())TypeError: range expected 1 arguments, got 0>>>

若我们在括号中什么也不写,单纯的list(range())是不行的,即:内容b不能不写。

值得注意的是,使用range(a,b,c)产生的列表,当c=1时,列表元素的个数是b个。

有了range(a,b,c)这样的工具,创造数字元素列表很方便,我们利用这三个内容可以创建一些不同的列表来更深入的了解。

>>> a=0>>> b=30>>> c=1>>> list(range(a,b,c))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25, 26, 27, 28, 29]>>> list(range(b))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25, 26, 27, 28, 29]>>>

这是c等于1的样子,列表元素的个数是30个,c=2呢?

>>> c=2>>> list(range(a,b,c))[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28]>>> len(list(range(a,b,c)))15>>>

当c=2时,产生了b//c个元素的列表,而且是个偶数列表。

有奇数的么?

>>> a=1>>> list(range(a,b,c))[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]>>> len(list(range(a,b,c)))15>>>

很神奇,当a=1时,奇数列表出现了。

由此看来,列表元素的个数只取决于b//c,能被整除时,元素个数即是b//c,那不能被整除时呢?

>>> b=9>>> len(list(range(a,b,c)))4>>> b//c4>>>

不能被整除时,b//c好像也是对的。好吧好吧,b//c虽然写起来简单,可使用工具len(),牺牲些时间,准确度有保障。

c是负值会怎样呢?

>>> c=-2>>> len(list(range(a,b,c)))0>>>

居然是个空列表,对对对,c为负值的时候,起点数字要大于终点的数字。

>>> a=9>>> b=0>>> len(list(range(a,b,c)))5>>> list(range(a,b,c))[9, 7, 5, 3, 1]>>>

哦哦,这样得到的元素个数: (a+1)//(-c),很麻烦,很不好理解,好吧,获取列表的元素个数还是用len()这个工具,很直观。

今天的内容就这么多,range()工具是我们创造数字元素列表的工具,有了这样的工具,我们很容易创造出一些特殊的全是数字的列表,忽然有种感想,之所以我们创造不出超越光速的飞行器,很大可能是我们使用的工具不对,或许在未来的某一天,我们发现类似range()的工具,可以以任意倍数的光速进行飞行。

—————————-

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
上一篇 2022年6月28日 18:52
下一篇 2022年6月28日 18:52

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息