设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 21953|回复: 10
打印 上一主题 下一主题

【Python 第25课】 初探list

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-24 18:31:40 |只看该作者 |倒序浏览
昨天课程里的例子有点没说清楚,有同学表示写在程序里发生了错误。因为我当时写这个代码片段时,心里假想着这是在一个函数的内部,所以用了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身为一个列表,有一些特有的功能,这个我们下回再说。

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

37

积分

新手上路

Rank: 1

沙发
发表于 2014-7-25 23:03:48 |只看该作者
没人看到这里了吗?
同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

for i in l:
   print l,


这里面print I,应该是print i
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2014-7-27 16:04:21 |只看该作者
洛克 发表于 2014-7-25 23:03
没人看到这里了吗?
同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:

对哦,谢指出!笔误笔误
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

215

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2015-4-21 15:06:01 |只看该作者
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

5#
发表于 2015-6-25 16:09:51 |只看该作者
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)
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2015-6-27 00:28:57 |只看该作者
蒲公英Amyli 发表于 2015-6-25 16:09
for i in range(1,10):
    print range(1,10)
输出的是

应该是 print i
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

22

积分

新手上路

Rank: 1

7#
发表于 2015-12-29 19:44:07 |只看该作者
蒲公英Amyli 发表于 2015-6-25 16:09
for i in range(1,10):
    print range(1,10)
输出的是

输出列表10次  你的代码执行结果就是这样啊
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

8#
发表于 2016-1-26 21:45:13 |只看该作者
这个l显示出来简直分辨不出来,一直以为是1,好震惊,放到度娘里搜才看出来是l...
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2016-1-27 11:35:55 |只看该作者
jj19941031 发表于 2016-1-26 21:45
这个l显示出来简直分辨不出来,一直以为是1,好震惊,放到度娘里搜才看出来是l... ...

my fault...
所以后来课程里我改成 li 了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

66

积分

注册会员

Rank: 2

10#
发表于 2016-12-4 08:55:27 |只看该作者
本帖最后由 feng 于 2016-12-4 09:08 编辑

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


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

捕获1.PNG

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

捕获.PNG

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-20 17:45 , Processed in 0.030589 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部