Python 3 入门手札(02)在结构体中存储值 — List

除了简单的数据类型,Python 还允许我们将数据用不同方式组合起来创建结构体。最简单的结构体是线性结构体(sequences),它将信息一个接一个地存储起来,它分有两类:lists(列表)和tuples(元组)。另外也有非线性结构体,如:dict(字典)和 set(集合)。

结构体可以视为一种容器,内部所装的数据称为元素(element)。

List:列表

  1. List 要用方括号 [x, y, z] 来标示,个数不限。

  2. List 的元素可以是〝任意类型〞。

  3. 要建立空的 list,可以用 [] 或是不加参数的 list() 来建立。

  4. 利用索引从 list 中取得某元素的值。索引从 0 开始,不可以超出范围。可以是负数,代表倒数第几个。例如:-1 表示倒数第一个。
    在这里插入图片描述

  5. List 的元素可以是〝任意类型〞,因此也可以是容器。

>>>fruit = [ [‘苹果’, 82], [‘香蕉’, 45], [‘西瓜’, 60] ]
  1. 多层的容器,经常永来储存表格化的数据。
    在这里插入图片描述
    在这里插入图片描述

  2. 切片(Slicing)可以由 list 中切出一个 list 片段,例如:a[m:n] 可以由 list 中切出由 m 到 n 但不包含 n 的片段,切出来的片段长度为 n – m,m, n 均可为正或负数。若 m 省略,则预设为 0,若 n 省略,则为到最后一个。

  3. 所谓的切片,并不会改变原来 list 中数据,只是另外 Copy 出一段数据而已。

  4. 在 [ m : n ] 中 m 的位置必须在 n 的前面(左边)才行,否则会视为无效范围而传回空 []。切片的长度为 n – m,当 n – m <= 0 时,结果就是空 []。例如:0 是最前面的位置,因此 n 不可以为 0,因为没有任何 m 是在 0 之前。

    例如:a = [0, 1, 2, 3, 4, ‘last’]在这里插入图片描述

  5. 指定间隔切片,我们可以使用 [ m : n : k ] 来指定间隔切片,其中 k 表示间隔,如果 k 为负数,则可反向(由右往左)切片,此时 n 的位置必须在 m 的左边才行。
    例如:s = [ 0, 1, 2, 3, 4, 5, 6 ]
    在这里插入图片描述

  6. 用切片更新容器内容。例如:a = [ 0, 1, 2, 3 ]
    在这里插入图片描述

  7. 用 del 删除 list 的元素或切片的元素。
    例如:a = [0, 1, 2, 3, 4, 5]
    在这里插入图片描述

  8. 序列容器(list, tuple, string)常用的符号有三种:

    a) 串接(+)和重复(*):例如:[ 1, 2 ] + [ 3, 4 ] 结果为 [ 1, 2, 3, 4 ],而 3 * [ 1, 2 ] 结果为 [ 1, 2, 1, 2, 1, 2 ]。

    b) in, not in :「 e in s 」可判断 e 是否为 s 的元素。例如:2 in [ 1, 2, 3],其结果为 True。not in 则相反,判断 e 是否不存在 s 中。

    c) 一般的比较算符(>, >=, <, <=, ==, !=):容器的比较是从第一个元素开始往后比较,若前面都相同,则先结束的较小。比较算符只能比较相同类型的数据。例如:[ 1, 2 ] < [ 1, 2, 3] 为 True,[‘a’, ‘b’] < [‘c’] 为 True。

容器常用的函式(Function)

  1. len() 会算出容器元素的个数,但它只会算出第一层的个数,如果是多层容器,第二层以下(含第二层)都不会被计入。例如:len( [ [1, 2], [a, b], [3, 4]] ),其结果为 3。

  2. max()、min() 会传回容器内元素的最大值及最小值,但元素之间必须可以比较大小才行。

  3. sum() 则可以将容器内的元素加总,条件式其元素类型必须是数值。

  4. sorted() 可以读取容器的所有元素,然后从小到大排序后放在新的 list 中传回。若想改为由大到小,则可多加一个 reverse=True 参数。

  5. reversed() 则可以将容器中的元素反转(反过来排),例如:list(reversed([1, 2, 3, 0])),其结果为 [0, 3, 2, 1]。

List 的方法 (method)

  1. list.sort() 与 sorted() 都会对 list 做排序,但 list.sort() 会真正改变 list 的内容,但 sorted() 虽会传回排序后的 list,不过却不更改原来的 list 内容。

  2. list.reverse() 与 reversed() 的区别就如同 list.sort() 与 sorted() 一样。

  3. insert(i, x) 可以在指定索引 i 的位置插入元素 x。

  4. append( x ) 可以将元素 x 加到 list 最后面。

  5. extend( t ) 或 += t 则可以将 list t 串接到 list 的最后面。
    例如:s = [ 0, 1, 2]
    在这里插入图片描述

  6. index( x ) 可寻找 list 中第一个元素 x 的索引位置。

  7. count( x ) 可计算有几个元素 x 。

  8. remove( x ) 可删除第一个元素 x。

  9. clear() 可将 list 清空。

  10. pop( i ) 会取出索引 i 位置的值,并将其从 list 中删除。若 i 省略,则代表最后一个。

  11. copy() 会复制一个 list。
    例如: s = [0, 1, 2, 1, 3]
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值