Task03:列表与元组-1

淡淡的烟草味﹌ 2023-05-31 02:38 39阅读 0赞

Task03:列表与元组-1

  • 列表
    • 介绍
    • 创建
    • 删除
    • 添加
    • 分片
    • 拷贝
    • 列表操作符
  • 元组
    • 介绍
    • 创建
    • 更新
    • 解压元组
  • 参考资料

列表

介绍

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表就是一个集装箱,他可以存放列表,元组,字典,集合,字符串。

创建

  1. list1 = ['NCEPU', 'LSGO', 1958]
  2. list2 = [1, 2, 3, 4, 5 ]
  3. list3 = ['L','S','G','O']
  4. ## 访问
  5. 使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符
  6. ```python
  7. print ("list1[0]: ", list1[0])
  8. print ("list2[1:5]: ", list2[1:5])

注意:

  • 索引值从0开始
  • 截取时,不包括第二个参数

删除

可以用的语句有:remove,pop,del

  1. list1 = ['NCEPU', 'LSGO', 1958]
  2. list1.remove('ncepu')
  3. print(list1)
  4. #['LSGO', 1958]
  5. list1 = ['NCEPU', 'LSGO', 1958]
  6. list1.pop()
  7. print(list1)
  8. list1.pop(0)
  9. print(list1)
  10. #['NCEPU', 'LSGO']
  11. #['LSGO']
  12. list1 = ['NCEPU', 'LSGO', 1958]
  13. del list1[0],list1[1]
  14. print(list1)
  15. ['LSGO']

注意:

  • del 语句 删除第一个后 索引值就变化了 所以输出的不是1958
  • pop([index=-1])

添加

append,extend,insert
注意

  • append添加时作为一整个元素,而extend是列表的扩充。
  • insert的语法:insert(index, obj)

分片

语法:[start:stop:step]
注意:

  • 同样第二个参数stop不包含
  • 参数如果不写,就是默认到列表头或者列表尾

    list1 = [‘NCEPU’, ‘LSGO’, 1958]
    print(list1[::-1])
    print(list1[-1::-1])
    print(list1[:-1:-1])

    [1958, ‘LSGO’, ‘NCEPU’]

    [1958, ‘LSGO’, ‘NCEPU’]

    []

拷贝

注意

  1. >>> list1 = [1, 3, 2, 9, 7, 8]
  2. >>> list2 = list1[:]
  3. >>> list2
  4. [1, 3, 2, 9, 7, 8]
  5. >>> list3 = list1
  6. >>> list3
  7. [1, 3, 2, 9, 7, 8]
  8. >>> list1.sort()
  9. >>> list1
  10. [1, 2, 3, 7, 8, 9]
  11. >>> list2
  12. [1, 3, 2, 9, 7, 8]
  13. >>> list3
  14. [1, 2, 3, 7, 8, 9]

在这里插入图片描述

列表操作符

连接操作符 +
重复操作符 *

注:

  • 前面三种方法(append, extend, insert)可对列表增加元素,它们没有返回值,是直接修改了原数据对象。
  • 将两个list相加,需要创建新的 list 对象,从而需要消耗额外的内存,特别是当 list 较大时,尽量不要使用 “+” 来添加list。

元组

介绍

Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。

创建

  1. tuple1=() #空元组
  2. tuple1=(1,)#单个元素元组
  3. tuple1=((1,9),(5,8))#二维元组

更新

  1. week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
  2. week = week[:2] + ('Wednesday',) + week[2:]
  3. print(week) # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
  4. t1 = (1, 2, 3, [4, 5, 6])
  5. print(t1) # (1, 2, 3, [4, 5, 6])
  6. t1[3][0] = 9
  7. print(t1) # (1, 2, 3, [9, 5, 6])

注:

  • 元组有不可更改 (immutable) 的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改 (mutable),那么我们可以直接更改其元素,注意这跟赋值其元素不同。
  • 元组拼接 (concatenate) 有两种方式,用「加号 +」和「乘号 *」,前者首尾拼接,后者复制拼接。

解压元组

解压(unpack)一维元组(有几个元素左边括号定义几个变量)

  1. t = (1, 10.31, 'python')
  2. (a, b, c) = t
  3. print(a, b, c)
  4. # 1 10.31 python

解压二维元组(按照元组里的元组结构来定义变量)

  1. t = (1, 10.31, ('OK', 'python'))
  2. (a, b, (c, d)) = t
  3. print(a, b, c, d)
  4. # 1 10.31 OK python

如果你只想要元组其中几个元素,用通配符「*」,英文叫 wildcard,在计算机语言中代表一个或多个元素。下例就是把多个元素丢给了 rest 变量。

  1. t = 1, 2, 3, 4, 5
  2. a, b, *rest, c = t
  3. print(a, b, c) # 1 2 5
  4. print(rest) # [3, 4]

如果你根本不在乎 rest 变量,那么就用通配符「*」加上下划线「_」,例子如下:

  1. a, b, *_ = t
  2. print(a, b) # 1 2

参考资料

  • LSGOGroup 老马的程序人生
  • FishC.com
  • Runoob.com

注:特别感谢老马的程序人生,扩充了解压元组的知识!

发表评论

表情:
评论列表 (有 0 条评论,39人围观)

还没有评论,来说两句吧...

相关阅读

    相关 列表

    1.列表和元组的基础 列表和元组都是一个可以放置任意数据类型的有序合集。(在绝大多数编程语言中,集合的数据类型必须一致。不过,对于python的列表和元组来说,并无此要求)

    相关 列表

    1.列表 Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 比如,列出班里所有同学的名字,就可以用一个list表...