0x03 - Python的列表和元组


目录: 0x00 - Python学习笔记

列表简介

序列 是 Python 中最基本的数据结构。序列中的每个元素都分配一个数字(索引)。
序列 有 6 种内置类型,最常见的两种就是 列表元组
列表[ ]包裹,用,分隔,它里面的数据不需要有相同的类型

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__',
 '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
  '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', 
  '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__',
   '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', 
   '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend',
    'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

操作列表

  • 创建列表
    在这里插入图片描述
  • 添加元素
    使用 append() 方法向列表中添加一个元素
    empty.append('qwe')
    在这里插入图片描述
    使用 extend() 方法,用一个列表来扩展另一个列表
    empty.extend(['123' , 456])
    在这里插入图片描述
    使用 insert(n, #) 方法 在n+1的位置插入#
    empty.insert(2, 'thred')
    在这里插入图片描述

使用 remove() 方法删除列表中的一个元素
member.remove(123)
在这里插入图片描述
使用 del 语句删除数据或整个列表
del member[1]
在这里插入图片描述
使用 pop() 方法删除列表中的最后一个元素,并返回它
member.pop()
在这里插入图片描述
也可以指定删除:member.pop(1)
在这里插入图片描述

同样的:索引从 0 开始
在这里插入图片描述
用其实现数据交换:
在这里插入图片描述

列表切片(slice)

我们可以利用索引值从列表中获取一个元素,也可以利用切片的方法一次性获取多个元素

>>> member
['asd', 'second', 'thrid', 528, 123]
# 第二个到第三个
>>> member[1:3]
['second', 'thrid']
# 从开头到第三个
>>> member[:3]
['asd', 'second', 'thrid']
# 从第二个到最后
>>> member[1:]
['second', 'thrid', 528, 123]
# 全部=>实现拷贝
>>> member[:]
['asd', 'second', 'thrid', 528, 123]

列表操作符

比较

默认以第0个元素作比较,不再往后比较

>>> list1 = [5, 100]
>>> list2 = [100, 5]
>>> list1 > list2
False

拼接

+ 用于拼接两个列表

>>> list1
[5, 100]
>>> list2
[100, 5]
>>> list3 = list1 + list2
>>> list3
[5, 100, 100, 5]

重复

* 用于将列表内元素复制,后接需要复制的次数

>>> list1 = [123]
>>> list2 = list1 * 3
>>> list2
[123, 123, 123]

>>> list2 *= 2
>>> list2
[123, 123, 123, 123, 123, 123]

成员关系操作符

# 简单的判断
>>> list2
[123, 123, 123, 123, 123, 123]
>>> 123 in list2
True
>>> 123 not in list2
False
>>> list3 = [123, ['asd', 456], 456]
# 访问列表内的列表的元素
>>> list3[1][0]
'asd'
# 判断列表内列表关系
>>> 'asd' in list3
False
>>> 'asd' in list3[1]
True

其他方法

  • 计算数据出现次数
>>> list1 = [123, 123, 123, 123, 123]
>>> list1.count(123)
5
  • 查找数据出现位置,默认从第0个开始且返回找到的第一个,也可以指定范围
>>> list1 = [123, 456, 456, 456, 123, 123, 456, 456]
>>> list1.index(123)
0
>>> list1.index(123, 1, 6)
4
  • 逆序
    列表中数据会被逆序(其中的列表不会,只会改变他的位置)
>>> list1 = [123, ['asd', 456], 456]
>>> list1.reverse()
>>> list1
[456, ['asd', 456], 123]
  • 排序
    排序的意思是将列表内的数据安从小到大排序(默认)
>>> list1 = [2, 5, 6, 8, 1, 0, 6, 7, 4]
>>> list1.sort()
>>> list1
[0, 1, 2, 4, 5, 6, 6, 7, 8]

他有三个默认参数,这里展示一种

>>> list1 = [2, 5, 6, 8, 1, 0, 6, 7, 4]
>>> list1.sort(reverse=True)
>>> list1
[8, 7, 6, 6, 5, 4, 2, 1, 0]
  • 拷贝
    可以用list2 = list1[:]拷贝
>>> list1 = [1,3,5,6,2,8,2,1,5,0,4,6]
>>> list2 = list1[:]
>>> list1.sort()
>>> list1
[0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 6, 8]
>>> list2
[1, 3, 5, 6, 2, 8, 2, 1, 5, 0, 4, 6]

但如果是直接赋值的话,相当于起了一个新名字

>>> list1 = [8,5,7,3,1,6,0]
>>> list2 = list1
>>> list1.sort()
>>> list1
[0, 1, 3, 5, 6, 7, 8]
>>> list2
[0, 1, 3, 5, 6, 7, 8]

元组

元组和列表非常相似,但他是不可改变(增删改,排序)的类型

操作元组

  • 创建元组
    大部分元组用小括号创建
>>> tuple1 = (2,3,5,1,0,8,6)
>>> tuple1
(2, 3, 5, 1, 0, 8, 6)
  • 创建细节
    当元组只有一个数据时,给它后面加上一个逗号,才会是元组

除了创建空元组,其他都不需要括号,但不能没有逗号,建议带上括号,以表明他是一个元组,这样会增加代码的简洁性

# 这不是一个元组
>>> tuple1 = (1)
>>> type(tuple1)
<type 'int'>
# 就算没有括号也是元组
>>> tuple2 = 0, 1, 2
>>> type(tuple2)
<type 'tuple'>
# 创建一个元素的元组时加上逗号
>>> tuple3 = (1,)
>>> type(tuple3)
<type 'tuple'>
# 创建一个空元组
>>> tuple4 = ()
>>> type(tuple4)
<type 'tuple'>
  • 无法增加或改变元素
>>> tuple1 = (0, 1, 2, 3, 4, 5, 6)
>>> tuple1[1] = 10

Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    tuple1[1] = 10
TypeError: 'tuple' object does not support item assignment
  • 查询方法与列表相同
>>> tuple1 = (0, 1, 2, 3, 4, 5, 6)
>>> tuple1[2:4]
(2, 3)
>>> tuple1[:4]
(0, 1, 2, 3)
>>> tuple1[2:]
(2, 3, 4, 5, 6)
>>> tuple1[:]
(0, 1, 2, 3, 4, 5, 6)
  • 重复操作符
>>> 8 * 5
40
>>> 8 * (5,)
(5, 5, 5, 5, 5, 5, 5, 5)
>>> 8 * 5,
(40,)

更新元组

虽然元组不可更改,但我们可以使用切片的方法更新元组

>>> tuple1 = ('asd', 'qwe', 'dd', 'xx')
>>> tuple1 = tuple1[:1] + (123,) + tuple1[1:]
>>> tuple1
('asd', 123, 'qwe', 'dd', 'xx')

其他的功能如逻辑操作符、关系操作符等如列表相同,不再赘述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1ta-chi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值