《Python编程:从入门到实践》 第三天

3.3组织列表
3.3.1使用方法sort()对列表进行永久性排序
将汽车按字母顺序排序:

方法 sort()永久性地修改了列表元素的排列顺序。不可修改。
如果想与字母顺序相反的顺序排列排序,只需向sort()方法传递参数
reverse=True。

cars.sort(reverse=True)

3.3.2使用函数sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()

print("\nHere is the sorted list:") 
print(sorted(cars))

原始列表元素的排列顺序没有变化;如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。

3.3.3倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
print(cars) 
cars.reverse() 
print(cars)

注意:reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序,方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse()即可。

3.3.4确定列表的长度
使用函数len()可以快速的知道列表的长度

cars = ['bmw', 'audi', 'toyota', 'subaru']
 len(cars)

Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误。

3.4 使用列表时避免索引错误
索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索引减1,然后再次运行程序,看看结果是否正确。
索引-1总是返回最后的一个列表元素,只有列表为空时,这种访问最后一个元素的方式才会导致错误。

motorcycles = [] 
print(motorcycles[-1])

发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。

第四章 操作列表
学习如何遍历整个列表,循环可以对所有的元素采取一样的措施。。。
4.1 遍历整个列表
需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环。
使用for循环输出魔术师名单的名字
在这里插入图片描述
这行代码让Python从列表magicians中取出一个名字,并将其存储在变量magician中。

4.1.1深入地研究循环
编写for循环时,对于用于存储列表中每个值的临时变量,可指定任何名称。
刚开始使用循环时请牢记,对列表中的每个元素,都将执行循环指定的步骤,而不管列表包含多少个元素。

4.1.2 在for循环中执行更多的操作
print语句中的换行符"\n"在每次迭代结束后都插入一个空行,更整洁。

对于每位魔术师,都打印一条消息,指出他的表演太精彩了
magicians=['alice','david','carolina']
for magician in magicians:
	print(magician.title() + ", that was a great trick!")
	print("I can't wait to see your next trick, " + magician.title() + ".\n")

4.1.3 在for循环结束后执行一些操作

4.2 避免缩进错误
Python根据缩进来判断代码行与前一个代码行的关系。
4.2.1 忘记缩进
对于位于for语句后面且属于循环组成部分的代码行,一定要缩进。
4.2.2 忘记缩进额外的代码行
4.2.3 不必要的缩进
4.2.4 循环后不必要的缩进
如果你不小心缩进了应在循环结束后执行的代码,逻辑错误
4.2.5 遗漏了冒号
for语句末尾的冒号告诉Python,下一行是循环的第一行。

4.3 创建数值列表
列表非常适合用于存储数字集合。

4.3.1 使用函数range()
range()能够轻松的生成一系列的数字,
函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值(这里为5)。

for value in range(1,5): 
 print(value)

使用range()时,如果输出不符合预期,请尝试将指定的值加1或减1。

4.3.2 使用range()创建数字列表
可使用函数list()将range()的结果直接转换为列表,将range()作为list()的参数,输出将为一个数字列表。

numbers = list(range(1,6)) 
print(numbers)

输出[1,2,3,4,5]

使用函数range()的时候,还可以指定步长。

打印1~10内的偶数:

even_numbers = list(range(2,11,2)) 
print(even_numbers)

输出:[2,4,6,8]

函数range()从2开始数,不断的加2,直到加到或者超过终值(11)。
使用函数range()几乎能够创建任何需要的数字集,在Python中,两个星号(**)表示乘方运算。

4.3.3 对数字列表执行简单的统计计算
有几个专门用于处理数字列表的Python函数。

> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0 
>>> max(digits)
9 
>>> sum(digits)

4.3.4 列表解析
列表解析可以只编写一行代码生成上面的列表squares的方法,列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

squares.py 
squares = [value**2 for value in range(1,11)] 
print(squares)

要使用这种语法,首先指定一个描述性的列表名,如squares;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值