zoukankan      html  css  js  c++  java
  • 给有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...


    如有错误,欢迎评论指正!

    化繁为简 大巧不工
  • 相关阅读:
    Atitit.隔行换色  变色 css3 结构性伪类选择器
    Atitit.jpg png格式差别以及解决jpg图片不显示的问题
    Atitit.jpg png格式差别以及解决jpg图片不显示的问题
    Atitit.预定义变量与变量预处理器
    Atitit.jpg png格式差别以及解决jpg图片不显示的问题
    Atitit.预定义变量与变量预处理器
    Atitit.增强系统稳定性----虚拟内存的设置
    Atitit.md5 实现原理
    Atitit.增强系统稳定性----虚拟内存的设置
    Atitit.md5 实现原理
  • 原文地址:https://www.cnblogs.com/mpeter/p/9535255.html
Copyright © 2011-2022 走看看