给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3
Posted mpeter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3相关的知识,希望对你有一定的参考价值。
操作列表,也就是遍历列表。本章我们要学的就是如何遍历列表。
4.1--4.2 遍历列表
遍历列表,用for循环。
不同于C++或者C语言的for循环,Python的for循环更容易让人理解。
看一个例子:
1 fruits = [‘apple‘, ‘banana‘, ‘orange‘]; 2 for fruit in fruits: 3 print("I like " + fruit.title() + ". "); 4 print("I really love fruit!");
其语法结构是for + 一个变量(自己定义的,在每次循环的时候从列表依次传递参数到这个变量,如第二行的fruit)+ 列表名(fruits)。
这里要注意的两点:
1. 是在for循环后面,没有缩进的代码都只执行一次,而不会重复执行。这里可以结合C中for循环结构体 ‘{}‘ 理解:
即:Python不同于C++,C++根据{}来代码行和前一个代码行的关系,而Python则根据缩进判断。
2. 是别忘了加冒号!!!,python 的 for循环代码行结束需要加冒号。
4.3 创建数值列表
5个函数:
1. range()。
2. list()。
3. min()。
4. max()。
5. sum()。
一, range()
1.使用range()函数时要注意差一行为,也就是如下代码:
1 for value in range(1, 5): 2 print(value) 3 4 print(‘ ‘) 5 6 for value in range(1, 6): 7 print(value);
上面代码的意图是依次打印出1到5数字,但是第一个代码只能打印1到4,这是由于编程语言中经常看到的‘’差一行‘’行为。
而第二个代码则达到了意图。
2. 指定range()函数的步长:
代码如下:
for value in range(2, 11, 2): print(value)
意思:for(int i = 2; i < 11; i += 2 ) cout << i << endl; -----学过C++的应该很明白。
二,list()函数
list()函数用于创建数字列表。其将range()的结果直接转化为列表。
样例如下:
1 numbers = list(range(1, 6)) 2 print(numbers) 3 4 print(‘ ‘) 5 6 even_numbers = list(range(2, 11, 2)) 7 print(even_numbers)
上面的两个样例结果是:[1, 2, 3, 4, 5] 和 [2, 4, 6, 8, 10]。
本质就是将range()得到的值压入栈中。
三,三个用于对列表执行简单统计操作的函数
类似C++中的max, min函数,但是这三个相当与遍历整个列表找到最大,最小以及和的值,功能强大。
样例代码:
1 digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 2 print(min(digits)) 3 print(max(digits)) 4 print(sum(digits))
四,列表解析
代码解析书里的解释是:将for循环和创建新元素的代码合并成一行,并自动附加新元素。
这样会使代码更为简洁。
比如做一个平方数集,普通的代码如下:
1 squares = [] 2 for value in range(1, 11): 3 square = value**2 4 squares.append(square) 5 6 print(squares)
或者:
1 squares = [] 2 for value in range(2, 11, 2): 3 squares.append(value**2) 4 5 print(squares)
如果经过代码解析,直接将for循环和创建步骤结合在一起:
squares = [value**2 for value in range(1, 11)] print(squares)
非常简洁。但是,作为一个学习C++的人,先value*2 再for循环会感到逻辑紊乱。
To be continued...
如有错误,欢迎评论指正!
以上是关于给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3的主要内容,如果未能解决你的问题,请参考以下文章