加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

笨办法学Python 习题 32: 循环和列表

发布时间:2020-12-17 17:00:55 所属栏目:Python 来源:网络整理
导读:现在你应该有能力写更有趣的程序出来了。如果你能一直跟得上,你应该已经看出将“ if 语句”和“布尔表达式”结合起来可以让程序作出一些智能化的事情。 然而,我们的程序还需要能很快地完成重复的事情。这节习题中我们将使用 for-loop ( for 循环)来创建和

现在你应该有能力写更有趣的程序出来了。如果你能一直跟得上,你应该已经看出将“ if 语句”和“布尔表达式”结合起来可以让程序作出一些智能化的事情。


然而,我们的程序还需要能很快地完成重复的事情。这节习题中我们将使用 for-loop ( for 循环)来创建和打印出各种各样的列表。在做的过程中,你会逐渐明白它们是怎么回事。现在我不会告诉你,你需要自己找到答案。


在你开始使用 for 循环之前,你需要在某个位置存放循环的结果。最好的方法是使用列表 (list) ,顾名思义,它就是一个按顺序存放东西的容器。列表并不复杂,你只是要学习一点新的语法。首先我们看看如何创建列表:


# -*- coding:utf-8 -*-

hairs = ['黑色','黄色','白色']

eyes = ['棕色','黑色','绿色']

weights = [1,2,3,4,5]

你要做的是以 [ (左方括号)开头“打开”列表,然后写下你要放入列表的东西,用逗号隔开,就跟函数的参数一样,最后你需要用 ] (右方括号)结束右方括号的定义。然后 Python 接收这个列表以及里边所有的内容,将其赋给一个变量。


Warning


对于不会编程的人来说这是一个难点。习惯性思维告诉你的大脑大地是平的。记得上一个练习中的if语句嵌套吧?你可能觉得要理解它有些难度,因为生活中一般人不会去像这样的问题,但这样的问题在编程中几乎到处都是。你会看到一个函数调用另外一个包含if语句的函数,其中又有嵌套列表的列表。如果你看到这样的东西一时无法弄懂,就用纸笔记下来,手动分割代码,直到弄懂为止。


现在我们将使用循环创建一些列表,然后将它们打印出来:


# -*- coding:utf-8 -*-

the_count = [1,5]

fruits = ['苹果','橙子','梨','杏子']

change = [1,'便士','1角硬币','两角五分']

#list可以储存数字类型

for number in the_count:? ? #从the_count列表中循环取值

? ? print "This is count %d" % number

#list可以储存字符串类型

for fruit in fruits:? ? #从fruits列表中循环取值

? ? print "其中一个水果: %s" % fruit

# list可以混合储存数字和字符串类型

# 注意我们不得不使用 %r 因为我们不知道用户输入的信息

for i in change:? ? #从change李彪中循环取值

? ? print "I got %r" % i

# 我们也可以建立列表,一开始从空开始

elements = []? ?#建立空列表elements

# 然后用 0-5循环函数

for i in range(0,6):? ?#循环去0-5数字

? ? print "Adding %d to the list." % i

? ? # 从函数中增加列表

? ? elements.append(i)? #

#现在我们能输出这些信息

for i in elements:

? ? print "Element was: %d" % i

结果:


This is count 1

This is count 2

This is count 3

This is count 4

This is count 5

其中一个水果: 苹果

其中一个水果: 橙子

其中一个水果: 梨

其中一个水果: 杏子

I got 1

I got 'xe4xbexbfxe5xa3xab'

I got 2

I got '1xe8xa7x92xe7xa1xacxe5xb8x81'

I got 3

I got 'xe4xb8xa4xe8xa7x92xe4xbax94xe5x88x86'

Adding 0 to the list.

Adding 1 to the list.

Adding 2 to the list.

Adding 3 to the list.

Adding 4 to the list.

Adding 5 to the list.

Element was: 0

Element was: 1

Element was: 2

Element was: 3

Element was: 4

Element was: 5

加分习题


1. 注意一下 range 的用法。查一下 range 函数并理解它。


? ? range()能返回一系列连续增加的整数,它的工作方式类似于分片,可以生成一个列表对象。range函数大多数时常出现在for循环中,在for循环中可做为索引使用。其实它也可以出现在任何需要整数列表的环境中,在python 3.0中range函数是一个迭代器。


2. 在第 22 行,你可以可以直接将 elements 赋值为 range(0,6) ,而无需使用 for 循环?


? ? elements为list格式,range()也是list格式,所以不用for循环,可以直接用


elements1 = range(0,6)

print elements1

3. 在 Python 文档中找到关于列表的内容,仔细阅读以下,除了 append 以外列表还支持哪些操作?


列表操作包含以下函数:


1、cmp(list1,list2):比较两个列表的元素?


2、len(list):列表元素个数?


3、max(list):返回列表元素最大值?


4、min(list):返回列表元素最小值?


5、list(seq):将元组转换为列表?


列表操作包含以下方法:


1、list.append(obj):在列表末尾添加新的对象


2、list.count(obj):统计某个元素在列表中出现的次数


3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)


4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置


5、list.insert(index,obj):将对象插入列表


6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值


7、list.remove(obj):移除列表中某个值的第一个匹配项


8、list.reverse():反向列表中元素


9、list.sort([func]):对原列表进行排序


常见问题回答


如何创建二维列表?


就是在列表中包含列表,例如这样: [[1,3],[4,5,6]]


列表和数组不是一样的吗?


依赖于语言和实现方式。在经典设计角度,由于数组列表的实现方式不同,数组列表是非常不同的。在Ruby中程序员称之为数组。在Python中,他们称之为列表。因为现在是Python调用它们,所以我们就称呼它为列表。


为什么for 循环可以使用一个没有定义过的变量?


在for循环开始的时候,就会定义这个变量, 并初始化。


为什么 for i in range(1,3): 只循环 2 次而非 3 次?


range()函数循环的次数不包括最后一个。所以range(1,3)只循环到2,这是这种循环最常用的方法。


elements.append() 实现什么功能?


它能实现在列表的末尾追加一个元素。打开Python解析器,自己写一个列表做些实验。当你遇到这类问题的时候,都可以在Python的解析器中做些实验,自己找到问题的答案。


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读