《Python编程快速上手》(四)列表

第四章   列表

4.1 列表数据类型

  • "列表"是一个值,它包含多个字构成的序列
  • spam变量被赋予一个值:列表值。但列表值本身就包含多个值(用,隔开)
  • []是个空列表,不包含任何值,类似于空字符串''

4.1.1 用下标取得列表中的单个值

  • 下标从0开始,依次递增
  • 下标访问不能超过列表值的个数
  • 下标只能是整数

  • 列表可包含其他列表,可多重下标访问
  • 第一个下标表明使用哪个列表值,第二个下标表明该列表值中的值

4.1.2 负数下标

  • 下标虽然从0开始,但允许出现负值
  • -1指最后一个下标,-2指倒数第二个,以此类推

4.1.3 利用切片取得子序列

  • “切片”可从列表中获取多个值
  • 切片中,第一个整数是切片开始处下标,第二个整数是切片结束处下标(但不包含)
  • 切片求值为一个新的列表值,切片长度为冒号两边整数之差
  • 可省略切片中冒号两边的一个或两个下标(省略第一个默认为0,省略第二个默认为列表长度)

4.1.4 用 len() 取得列表的长度

4.1.5 用下标改变列表中的值

4.1.6 列表连接和列表复制

  • + 可连接两个列表,得到一个新的列表
  • * 可用于一个列表和一个整数,实现列表复制

4.1.7 用 del 语句从列表中删除值

  • del 语句将删除列表中下标处的值,表中所有在被删除值后面的值,都将向前移动
  • del 语句也可删除简单变量(几乎不用)

4.2 使用列表

catNames = []
while True:
    print('Enter the name of cat' + str(len(catNames) + 1) + ' (Or enter nothing to stop.):')
    name =  input()
    if name=='':
        break
    catNames = catNames + [name]
print('The cat names are:')
for name in catNames:
        print(''+ name)

4.2.1 列表用于循环

  • range()函数返回值是类似列表的值,故上两种方式输出相同
  • 每次迭代时,让变量依次设置为列表中的值

【常用技巧】

4.2.2 in 和 not in 操作符

  • 利用 in 和 not in 可以判断一个值是否在列表中

4.2.3 多重赋值技巧

  • 三行可简写为一行赋值,但变量的数目和列表的长度必须严格相等

​​​​​​​


4.3 增强的赋值操作

  • +=     -=     *=     /=     %=
  • +=操作符也可用于完成字符串和列表的连接
  • *= 操作符也可用于完成字符串和列表的复制

​​​​​​​


4.4 方法

  • 和函数一回事,只是它是调用在一个值上

4.4.1 用 index() 方法在列表中查找值

  • index()方法用于判断传入的值是否在列表中,有则返回它第一次出现时(若列表中重复出现)的下标,没有则报错

4.4.2 用 append() 和 insert() 方法在列表中添加值

  • append() 方法,将参数插入到列表末尾
  • insert() 方法,将参数插入到指定(下标)位置
  • append() 和insert() 是方法,属于单个数据类型,只能在列表上调用,不能在其他值上调用

4.4.3 用 remove() 方法从列表中删除值

  • remove() 方法:删除列表中与参数相等的第一个出现的值(该值在列表中出现多次)
  • 删除不存在的值时,出错
  • del 语句用于删除知道下标的值,remove() 用于直接删除指定值

4.4.4 用 sort() 方法将列表中的值排序

  • sort() 方法用于列表排序
  • 若指定关键字参数 reverse=True 则逆序排序
  • 不能对既有数字又有字符串的列表排序
  • 排序时,使用ASCII字符顺序,故大写在小写之前
  • 若以字典顺序排序,需指定关键字参数 key=str.lower


4.5 例子程序:神奇的8球和列表


4.6 类似列表的类型:字符串和元组

4.6.1 可变和不可变数据类型

4.6.2 元组数据类型

4.6.3 用 list() 和 tuple() 函数来转换类型


4.7 引用

4.7.1 传递引用

4.7.2 copy 模块的 copy() 和 deepcopy() 函数


4.8 小结

4.9 习题


4.10 实践项目

4.10.1 逗号代码

4.10.2 字符图网格

猜你喜欢

转载自blog.csdn.net/qq_40818798/article/details/81660610
今日推荐