Crossin的编程教室

标题: 【Python 第25课】 初探list [打印本页]

作者: crossin先生    时间: 2014-4-24 18:31
标题: 【Python 第25课】 初探list
昨天课程里的例子有点没说清楚,有同学表示写在程序里发生了错误。因为我当时写这个代码片段时,心里假想着这是在一个函数的内部,所以用了return语句。如果你没有把它放在函数里,那return的话就会出错,你可以换成print。

今天要说一个新概念--list,中文可以翻译成列表,是用来处理一组有序项目的数据结构。想象一下你的购物清单、待办工作、手机通讯录等等,它们都可以看作是一个列表。说它是新概念也不算确切,因为我们之前已经用过它,就在这个语句里:

for i in range(1, 10):
   #此处略过数行代码

看出来list在哪里了吗?你试一下:

print range(1,10)

得到的结果是:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

这就是一个list。它由range产生。把上面那个for循环语句写成:

list_test = range(1, 10)
for i in list_test:

效果是一样的。

于是可以看出,for循环做的事情其实就是遍历一个列表中的每一项,每次循环都把当前项赋值给一个变量(这里是i),直到列表结束。

我们也可以定义自己的列表,格式就是用中括号包围、逗号隔开的一组数值:

list_test = [1, 1, 2, 3, 5, 8, 13]

可以用print输出这个列表:

print list_test

同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

for i in list_test:
   print i,

列表中的元素也可以是别的类型,比如:

list_test = ['meat', 'egg', 'fish', 'milk']

甚至是不同类型的混合:

list_test = [365, 'everyday', 0.618, True]

list_test身为一个列表,有一些特有的功能,这个我们下回再说。


作者: 洛克    时间: 2014-7-25 23:03
没人看到这里了吗?
同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

for i in l:
   print l,


这里面print I,应该是print i
作者: crossin先生    时间: 2014-7-27 16:04
洛克 发表于 2014-7-25 23:03
没人看到这里了吗?
同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

对哦,谢指出!笔误笔误
作者: cross    时间: 2015-4-21 15:06

作者: 蒲公英Amyli    时间: 2015-6-25 16:09
for i in range(1,10):
    print range(1,10)
输出的是
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
我在想为什么不是 print i  这是为什么是print range(1,10)
作者: crossin先生    时间: 2015-6-27 00:28
蒲公英Amyli 发表于 2015-6-25 16:09
for i in range(1,10):
    print range(1,10)
输出的是

应该是 print i
作者: weiliu    时间: 2015-12-29 19:44
蒲公英Amyli 发表于 2015-6-25 16:09
for i in range(1,10):
    print range(1,10)
输出的是

输出列表10次  你的代码执行结果就是这样啊
作者: jj19941031    时间: 2016-1-26 21:45
这个l显示出来简直分辨不出来,一直以为是1,好震惊,放到度娘里搜才看出来是l...
作者: crossin先生    时间: 2016-1-27 11:35
jj19941031 发表于 2016-1-26 21:45
这个l显示出来简直分辨不出来,一直以为是1,好震惊,放到度娘里搜才看出来是l... ...

my fault...
所以后来课程里我改成 li 了
作者: feng    时间: 2016-12-4 08:55
本帖最后由 feng 于 2016-12-4 09:08 编辑

关于list的长度:
为什么出错呢?
编译环境是:  .Spyder


捕获1.PNG (7.58 KB, 下载次数: 690)

捕获1.PNG

捕获.PNG (15.41 KB, 下载次数: 685)

捕获.PNG


作者: crossin先生    时间: 2016-12-4 13:01
feng 发表于 2016-12-4 08:55
关于list的长度:
为什么出错呢?
编译环境是:  .Spyder
请帖完整代码

你大概在别的地方定义了个叫 len 的变量





欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5