zoukankan      html  css  js  c++  java
  • 读书笔记「Python编程:从入门到实践」_4.操作列表

    4.1 遍历整个列表

      4.1.1 深入地研究循环 

      4.1.2 在for循环中执行更多的操作

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

    1 magicians = ['alice', 'david', 'carolina']
    2 for magician in magicians:
    3     print(magician.title() + ", that was a great trick!")
    4     print("I can't wait to see your next trick, " + magician.title() + ".
    ")
    View Code
    Alice, that was a great trick!
    I can't wait to see your next trick, Alice.
    
    David, that was a great trick!
    I can't wait to see your next trick, David.
    
    Carolina, that was a great trick!
    I can't wait to see your next trick, Carolina.

      循环的两个重点,一个是冒号,一个是缩进,另外使用单数和复数式名称,可帮助你判断代码段处理的是单个列表元素还是整个列表。

    for xxx in xxxs:
        print(xxx)  

    4.2 避免缩进错误

      4.2.1 忘记缩进

      对于位于for 语句后面且属于循环组成部分的代码行,一定要缩进。如果你忘记缩进,Python会提醒你:IndentationError: expected an indented block
      4.2.2 忘记缩进额外的代码行

      如果你预期某项操作将针对每个列表元素都执行一次,但它却只执行了一次,请确定是否需要将一行或多行代码缩进。
      4.2.3 不必要的缩进

      如果你不小心缩进了无需缩进的代码行,Python将指出这一点:IndentationError: unexpected indent
      4.2.4 循环后不必要的缩进

      如果你不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。
      4.2.5 遗漏了冒号

      for 语句末尾的冒号告诉Python,下一行是循环的第一行。
    4.3 创建数值列表
      4.3.1 使用函数range()

      Python函数range() 让你能够轻松地生成一系列的数字
      4.3.2 使用range()创建数字列表

      要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表

      使用函数range() 时,还可指定步长。打印1~10内的偶数:range(2,11,2)

      使用函数range() 几乎能够创建任何需要的数字集

      4.3.3 对数字列表执行简单的统计计算

      有几个专门用于处理数字列表的Python函数.min(),max(),sum()

      4.3.4 列表解析

      将for 循环和创建新元素的代码合并成一行,并自动附加新元素。

     1 # 打印2-10之间的偶数
     2 for value in range(1,11,2):
     3     print(value)
     4 # 以队列的形式打印1-5
     5 print(list(range(1,6)))
     6 # 打印1-10的平方
     7 squares=[]
     8 for value in range(1,11):
     9     squares.append(value**2)
    10 print(squares)
    11 #打印1-10平方中的最小值
    12 print(min(squares))
    13 #打印1-10平方中的最大值
    14 print(max(squares))
    15 #打印1-10平方的和
    16 print(sum(squares))
    17 #列表解析
    18 lists=[v**2 for v in range(1,10)]
    19 print(lists)
    View Code

    结果

    1
    3
    5
    7
    9
    [1, 2, 3, 4, 5]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    1
    100
    385
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    4.4 使用列表的一部分

      4.4.1 切片

      要创建切片,可指定要使用的第一个元素和最后一个元素的索引。 list[strIndx:endIndx]

      如果你没有指定第一个索引,Python将自动从列表开头开始,print(players[:4])

      如果你没有指定第一个索引,Python将自动到列表结尾结束。print(players[2:]), print(players[-3:])

      4.4.2 遍历切片

      如果要遍历列表的部分元素,可在for 循环中使用切片    for player in players[:3]:
      4.4.3 复制列表

      要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。

      a=b[:]  a复制了b    a=b  a和b指向了同一个列表

     1 tList=['aaa','bbb','ccc','ddd','eee','fff']
     2 #打印index1到3元素(不含3)
     3 print(tList[1:3])
     4 #打印index0到3元素(不含3)
     5 print(tList[:3])
     6 #打印index3到最后的元素
     7 print(tList[3:])
     8 #打印倒数3个元素
     9 print(tList[-3:])
    10 #打印index1到3元素(不含3)
    11 for t in tList[1:3]:
    12     print(t+"	")
    13 #t2List和tList指向同一个队列
    14 t2List=tList
    15 tList.pop()
    16 t2List.pop()
    17 print(tList)
    18 print(t2List)
    19 #t3List复制了t2List
    20 t3List=t2List[:]
    21 t2List.pop()
    22 print(t2List)
    23 print(t3List)
    View Code

    结果

    ['bbb', 'ccc']
    ['aaa', 'bbb', 'ccc']
    ['ddd', 'eee', 'fff']
    ['ddd', 'eee', 'fff']
    bbb	
    ccc	
    ['aaa', 'bbb', 'ccc', 'ddd']
    ['aaa', 'bbb', 'ccc', 'ddd']
    ['aaa', 'bbb', 'ccc']
    ['aaa', 'bbb', 'ccc', 'ddd']
    

    4.5 元组

      4.5.1 定义元组

      元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

      尝试修改元组dimensions 中的一个元素。TypeError: 'tuple' object does not support item assignment
      4.5.2 遍历元组中的所有值

      像列表一样,也可以使用for 循环来遍历元组中的所有值:
      4.5.3 修改元组变量

      虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

    1 tList=('aaa','bbb','ccc','ddd','eee','fff')
    2 for t in tList:
    3     print(t)
    4 print(tList[1])
    5 tList[1]='xxxx'
    View Code

    结果

    aaa
    bbb
    ccc
    ddd
    eee
    fff
    bbb
      File "C:/Users/changxininjp/PycharmProjects/helloworld/helloworld.py", line 5, in <module>
        tList[1]='xxxx'
    TypeError: 'tuple' object does not support item assignment
    

    4.6 设置代码格式

      4.6.1 格式设置指南

      Python改进提案 (Python Enhancement Proposal,PEP)。PEP 8是最古老的PEP之一

      代码被阅读的次数比编写的次数多

      4.6.2 缩进

      PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。
      4.6.3 行长

      很多Python程序员都建议每行不超过80字符。
      4.6.4 空行

      要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用;
      4.6.5 其他格式设置指南

      https://python.org/dev/peps/pep-0008/

  • 相关阅读:
    LDAP个人理解
    webpack-dev-middleware 与 webpack-hot-middlware
    RFC、EMCA-262、TC-39等名词
    贝塞尔曲线
    Async/await语法糖实现(Generator)
    Promise嵌套问题/async await执行顺序
    JS对象中,在原型链上找到属性后 最终将值拷贝给原对象 而不是引用
    三列布局中 float引发的一个问题-当“非float的元素”和“float的元素”在一起的时候,如果非float元素在先,那么float的元素将受到排斥。
    05-Linux系统编程-第02天(文件系统、目录操作、dup2)
    降低30%视频码率,窄带高清技术实现揭秘
  • 原文地址:https://www.cnblogs.com/changxinblog/p/9756883.html
Copyright © 2011-2022 走看看