03列表List与元祖Tuple

本文详细介绍了Python中的列表和元组。列表是可变的有序序列,支持多种操作,如添加、删除元素;元组则是不可变序列,创建后无法修改。文章通过实例展示了它们的创建、访问、遍历、排序以及常用方法,同时对比了两者之间的异同,强调了元组在速度和不可变性上的优势,以及在特定场景下的用途。
摘要由CSDN通过智能技术生成

列表概述

​ 列表是包含若干元素的有序连续内存空间

在形式上,列表的所有元素都放在一对方括号中,相邻元素之间使用逗号隔开

同一列表中的元素的数据类型可以不相同

若只有一对方括号而没有任何元素则表示为空列表

列表的创建

使用 =[] 或者list()创建

1=[] 创建
>>> a = [1,2,3,4,5,6,'a']
>>> a
[1, 2, 3, 4, 5, 6, 'a']
>>> type(a)
<class 'list'>

2list()创建
>>> b = list((1,2,3,4,5,6,7,8,9,'d'))
>>> b
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'd']
>>> type(b)
<class 'list'>

3、创建空列表
>>> x =  list()
>>> x
[]
>>> type(x)
<class 'list'>

也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表

>>> list((1,2,3,4,5,6))
[1, 2, 3, 4, 5, 6]
>>> list(range(1,10,1))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list("hello world")
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list({1,3,5,7})
[1, 3, 5, 7]
>>> list({'a':1,'b':2,'c':3})
['a', 'b', 'c']
>>> list({'a':1,'b':2,'c':3}.items())
[('a', 1), ('b', 2), ('c', 3)]

列表的元素访问

列表属于有序序列,可以使用整数或负整数作为下标来随机访问列表中任意位置的元素

>>> a = list("HelloWorld")
>>> a
['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
>>> a[0]
'H'
>>> a[-1]
'd'
>>> a[::-1]
['d', 'l', 'r', 'o', 'W', 'o', 'l', 'l', 'e', 'H']
>>> len(a)
10
>>> a[1:5]
['e', 'l', 'l', 'o']
>>> a[1:5:2]
['e', 'l']

使用index()返回元素所在的索引位置
>>> a.index('H')
0
>>> a.index('d')
9

列表的删除

  • 当一个列表不再使用时,使用del命令将其删除

  • list().pop(i) 删除第i位置的元素,若不写i则默认删除最后一个元素

    会返回被删除元素

>>> x = [1,2,3,4,5]
>>> x
[1, 2, 3, 4, 5]
>>> del x
>>> x
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    x
NameError: name 'x' is not defined
    
>>> a = [1,2,3,4,5]
>>> a
[1, 2, 3, 4, 5]
>>> a.pop(0)
1
>>> a
[2, 3, 4, 5]

列表常用方法

方法说明
.append(x)将x追加到列表的尾部
.extend(L)将列表L中的所有元素追加到列表尾部
.insert(index,x)在列表index位置处插入x
.remove(x)在列表中删除第一个值为x的元素,如列表不存在x,抛出异常
.pop([index])默认删除列表最后一个元素,并返回删除的元素
.index(x)返回列表中x元素所在的索引值,不存在x则抛出异常
.count(x)返回元素x在列表中出现的次数
.reverse()对列表所有元素进行原地逆转,首尾交换
a = [1,2,3]
>>> a
[1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.insert(1,5)
>>> a
[1, 5, 2, 3, 4]
>>> b = [7,8]
>>> a.extend(b)

>>> a
[1, 5, 2, 3, 4, 7, 8]
>>> a.pop()
8
>>> a
[1, 5, 2, 3, 4, 7]
>>> a.pop(4)
4
>>> a
[1, 5, 2, 3, 7]
>>> a.index(5)
1
>>> a.append(5)
>>> a
[1, 5, 2, 3, 7, 5]
>>> a.remove(5)
>>> a
[1, 2, 3, 7, 5]
>>> a.count(1)
1
>>> a
[1, 2, 3, 7, 5]
>>> a.reverse()
>>> a
[5, 7, 3, 2, 1]

列表的遍历

  • 通过for循环 for i in list
  • .sort() 列表的专用排序方式(可以指定规则)
>>> for i in a:
	print(i)

	
10
7
3
2
1
>>> a.sort()
>>> a
[1, 2, 3, 7, 10]

元组Tuple

​ 元组可看作是轻量级列表或者简化版列表,支持与列表类似的操作,但功能不如列表强大

​ 形式上,元组的所有元素都放在一对圆括号内,元素之间使用逗号隔开

​ 如果元组中只有一个元素,则必须在最后增加一个逗号

元组的创建

​ 通过()或者tuple创建

>>> a = (1,2,3,'a')
>>> type(a)
<class 'tuple'>
>>> a
(1, 2, 3, 'a')
>>> b = tuple((4,5,6,'b'))
>>> type(b)
<class 'tuple'>
>>> b
(4, 5, 6, 'b')

元组创建后不能修改

>>> a = [1,2,3]
>>> id(a)
1502219154240
>>> b = [1,2,3]
>>> a += b
>>> a
[1, 2, 3, 1, 2, 3]
>>> id(a)
1502219154240
>>> c = (4,5,6)
>>> d = (4,5,6)
>>> id(c)
1502219095808
>>> c += d
>>> id(c)
1502218912288

常用方法

  • len(tuple) 获得里元组tuple 的元素个数
  • index(x) 返回元素x的索引位置
  • count(x) 返回元组中元素x出现的次数
  • sorted(tuple) 返回tuple元组排序后的新元组,原来的元组不变
>>> a = (1,2,3)
>>> len(a)
3
>>> a.count(2)
1
>>> a.index(1)
0
>>> b = (1,2,3,4,4,1,1,1,1,11,1,1)
>>> b.count(1)
7
>>> sorted(b)
[1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 4, 11]
>>> b
(1, 2, 3, 4, 4, 1, 1, 1, 1, 11, 1, 1)

元组的排序

  • 使用for循环进行排序 for i in tuple
>>> b
(1, 2, 3, 4, 4, 1, 1, 1, 1, 11, 1, 1)
>>> for i in b:
	print(i)

	
1
2
3
4
4
1
1
1
1
11
1
1

列表List和元组Tuple的异同

  • 元组和列表都属于有序序列,均可以使用count()和index()
  • 元组属于不可变数据类型,不可以直接修改元组中元素的值,也无法为元组增加或删除元素
  • 元组只能通过切片访问元组的中元素,不可通过切片对元组中元素进行修改、增加和删除
  • 元组的访问速度比列表更快
  • 元组可作为字典的键、集合的元素,而列表永远不能当作字典的键和集合的元素使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值