python数据类型 - 列表list

本文详细介绍了Python中的列表,包括如何定义列表、列表的操作符操作、使用函数进行操作,以及列表与其他数据类型的对比,特别是与元组的区别。重点讨论了列表的可变性及其在内存中的存储方式。
摘要由CSDN通过智能技术生成

列表定义

创建数组列表来存放数据,无需声明列表类型,数据自0编号,自下至上放在内存中(堆栈)

  • 列表是有序的元素集合
  • 列表元素可以通过索引访问单个元素
>>> case=[1,2,'文',[3,4,5],'asd']

#索引序列中的元素
>>> case[0]
1
>>> case[2]
'文'
>>> case[3]
[3, 4, 5]
>>>case[3][0]
3

#取子序列,不包含第三位
#分片:从一个列表访问多个列表项(sequence[indexStart : indexEnd : stride])
	#indexstart、indexend确定列表取值的范围
	#stride:表示步长,从Indexstart项跳过stride个列表项,显示出来
>>> case=[1, 2, '文', [3, 4, 5], 'asd', 1, 2, '文', [3, 4, 5], 'asd']
>>> case[1:4]
[2, '文', [3, 4, 5]]
>>> case[0:10:3]
[1, [3, 4, 5], 2, 'asd']
>>> case[0:9:3]
[1, [3, 4, 5], 2]

列表的操作符操作

>>> ca=[1,2,3,[4,5]]
>>> case=[1,2,'文',[3,4,5],'asd']

#连接两个序列
>>> case+ca
[1, 2, '文', [3, 4, 5], 'asd', 1, 2, 3, [4, 5]]

#对序列进行整数次重复
>>> case*2
[1, 2, '文', [3, 4, 5], 'asd', 1, 2, '文', [3, 4, 5], 'asd']

列表的函数操作

>>> case=[1,2,'文',[3,4,5],'asd']

#len:统计列表内数据个数
>>> len(case)

#count:返回x元素在列表中的数量,字符串需要带引号,不然会报错
>>> case.count(1)
1
>>> case.count(asd)
Traceback (most recent call last):
  File "<pyshell#65>", line 1, in <module>
    case.count(asd)
NameError: name 'asd' is not defined
>>> case.count('asd')
1

#index:返回第一次出现元素x的索引值
>>> case.index([3,4,5])
3

#append:将x增加到列表末尾,append只能增加一个数据项,不能增加多个
>>> case.append("增加一个")
>>> case
[1, 2, '文', [3, 4, 5], 'asd', '增加一个']
>>> case.append(1,2)
Traceback (most recent call last):
  File "<pyshell#67>", line 1, in <module>
    case.append(1,2)
TypeError: append() takes exactly one argument (2 given)

#insert:在某个特定位置前面增加一个数据项
>>> case.insert(0,"插入")
>>> case
['插入', 1, '文', [3, 4, 5], 'asd', 666, '999']

#extend在列表末尾增加一个数据集合
>>> case.extend([999,666,'999'])
>>> case
[1, '文', [3, 4, 5], 'asd', 999, 666, '999']

#pop:默认为-1,在列表末尾删除一个数据项,可使用pop(X)删除指定位置X的数据
>>> case.pop()
'增加一个'
>>> case
[1, 2, '文', [3, 4, 5], 'asd']
>>> case.pop(1)
2
>>> case
[1, '文', [3, 4, 5], 'asd']

#remove:在列表中找到特定项并删除(仅删除找到的第一个特定项,列表中其余重复值不删除)
>>> case.remove(999)
>>> case
[1, '文', [3, 4, 5], 'asd', 666, '999']
>>> case.remove(999)
Traceback (most recent call last):
  File "<pyshell#55>", line 1, in <module>
    case.remove(999)
ValueError: list.remove(x): x not in list

#spilt:可以将字符串拆分成一个列表
>>> "Traceback (most recent call last)".split()
['Traceback', '(most', 'recent', 'call', 'last)']

#sort:将列表元素排序,作用相当于sorted函数,sort、sorted不支持对嵌套列表进行排序
>>> case=[3,5,1,6]
>>> case.sort()
>>> case
[1, 3, 5, 6]
>>> sorted(case)
[1, 3, 5, 6]
>>> case=[1,2,'文',[3,4,5],'asd']
>>> case.sort()
Traceback (most recent call last):
  File "<pyshell#77>", line 1, in <module>
    case.sort()
TypeError: '<' not supported between instances of 'list' and 'str'

#reverse:将列表元素反序显示
>>> case=[1,2,'文',[3,4,5],'asd']
>>> case.reverse()
>>> case
['asd', [3, 4, 5], '文', 2, 1]

对列表的其他操作

>>> case=[1,2,'文',[3,4,5],'asd']
>>> for each in case:
		print(each)	
1
2[3, 4, 5]
asd

#成员检查,判断x是否在列表中
>>> 1 in case
True

列表与元组对比

  • 列表与元组类似:
    • 列表中每个元素类型可以不一样
    • 访问列表中元素时采用索引形式
  • 列表与元组不同:
    • 列表的大小没有限制,类型可以随时修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值