Python3 基础数据类型-列表(list)类型及操作

 Python3 基础语法-列表(list)类型及操作


1.1 列表简介

        列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都会被分配一个数字作为对应内容的索引(也称作下标),用来表示该元素在列表内的排列位置。第一个元素的索引是0,第二个是1。

        Python的列表是一个有序的、可重复的集合,可以嵌套、迭代、修改、分片、追加、删除、成员判断。

        从数据结构的角度来看,Python的列表是一个可变长度的顺序存储结构,列表中每一个位置存放的都是对象的指针。如下图所示:


1.2 列表的创建

        在Python中的列表用方括号[ ]表示,如下代码:

>>> li = []		# 定义一个空的列表 注意 命名不能是list
>>> li
[]
>>> li1 = [1,'qianan',3.14]	# 任何数据类型都可存储
>>> li1
[1, 'qianan', 3.14]
>>> li2 = list()	
>>> li2
[]
>>> li3 = list('hello')		# list(iterable)
>>> li3
['h', 'e', 'l', 'l', 'o']

1.3 访问列表内的元素

        列表从0开始为它的每一个元素顺序创建下标索引。要访问列表内某个元素,直接用方括号中间填上下标就可以。注意:要确保索引的值不能越界否则会报错。记住最后一个元素的索引下标是len(list)-1。

>>> lis = ["a", "b", "c"]
>>> lis[0]
'a'
>>> lis[1]
'b'
>>> lis[2]
'c'
>>> lis[3]
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    lis[3]
IndexError: list index out of range

1.4 修改元素的值

        直接对列表中的元素重新赋值即可。

>>> li1 = [1,2,3]
>>> li1[1]
2

>>> li1[1] = 5
>>> li1
[1, 5, 3]

>>> li1[1:] = [6,7]
>>> li1
[1, 6, 7]

1.5 删除元素

        使用del语句或者remove()、pop()方法删除指定元素。

>>> lis = ["a", "b", "c"]
>>> del lis[0]      # 根据索引删除
>>> lis
['b', 'c']
>>> lis.remove("b") # 直接根据值进行删除
>>> lis
['c']
>>> lis.pop()       # 弹出最后一个
'c'
>>> lis
[]

l1 = [1, 'hello', 1]

l2 = l1.pop(1)  # 根据索引来弹出 1为索引
print(l2)

1.6 列表的特殊操作

        两个列表的组合、列表的乘法、判断元素是否存在于列表中。

# 组合两个列表,语句 							结果 							
[1, 2, 3] + [4, 5, 6] 		   # [1, 2, 3, 4, 5, 6]
 				
l1 = [1, 2, 3]
l2 = [4, 5, 6]
print(l1.__add__(l2))  		   # 底层调用了__add__方法


# 列表的乘法
['Hi!'] * 4 		   		   # ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 	    
l1 = [1, 2, 3]
print(l1.__mul__(3))


# 判断元素是否存在于列表中
3 in [1, 2, 3] 				   # True 						  
l1 = [1, 2, 3]
print(l1.__contains__(1))

1.7 列表的常用函数

# 函数 		  		作用
>>> l1 = [1, 2, 3]
>>> len(l1) 		# 返回列表元素个数,也就是获取列表长度 l1.__len__()
3
>>> max(l1) 		# 返回列表元素最大值  max(l1)  max(1,2,3,4)
3
>>> min(l1) 		# 返回列表元素最小值
1
>>> list('hello') 	# 将序列转换为列表
['h', 'e', 'l', 'l', 'o']

>>> s = list((1, "a", "b", 2))
>>> s
[1, 'a', 'b', 2]

>>> max(s)          # 不能混合不同类型进行最大最小求值
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    max(s)
TypeError: '>' not supported between instances of 'str' and 'int'

1.8 列表的排序和反转

>>> li = [1,2,3,4,5,2,1,3,1]
>>> li.reverse()			# 将列表反转 修改本身 *IN PLACE*
>>> li
[1, 3, 1, 2, 5, 4, 3, 2, 1]
>>> li.sort()				# 排序,默认升序 L.sort(key=None, reverse=False)
>>> li
[1, 1, 1, 2, 2, 3, 3, 4, 5]
>>> li.sort(reverse=True)	# reverse=True 降序
>>> li
[5, 4, 3, 3, 2, 2, 1, 1, 1]

1.9 列表的切片(截取)

        切片,指的是对序列进行截取,提取其中的某一段数据。

        切片的语法:list[start:end:step],用冒号:分割索引,省略不填写end表示直接截取到列表的结尾为止。注意,这个如果指定end,那个这个区间是左闭右开的

        如果填写的是负整数下标,则是按照倒叙索引。

        切片过程中可以设置步长step。

实例如下:

>>> l3 = ['a','b','c','d','e','f']
>>> l3[1]							# 取'b'					注意:index默认从0开始
'b'
>>> l3[2]							# 取'c'
'c'
>>> l3[1:3]							# 取['b', 'c']			注意:左闭右开
['b', 'c']
>>> l3[:3]							# 取['a', 'b', 'c']		注意:start不写默认从头开始
['a', 'b', 'c']
>>> l3[2:]							# 取['c', 'd', 'e', 'f']	注意:end不写默认到最后			
['c', 'd', 'e', 'f']
>>> l3[:]							# 取全部			
['a', 'b', 'c', 'd', 'e', 'f']
>>> l3[::2]							# 取['a', 'c', 'e']		注意:步长为2
['a', 'c', 'e']
>>> l3[::-1]						# 逆序		
['f', 'e', 'd', 'c', 'b', 'a']

1.10  列表嵌套-多维列表

        列表中还可以嵌套列表,也可以是其他数据格式,下面以嵌套列表做演示:

>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> a[0][1]
2

1.11 列表的遍历

a = [1,2,3,4,5,6]
for i in a:            		 # 遍历每一个元素本身
    print(i)

for i in range(len(a)):    	 # 遍历列表的下标,通过下标取值
    print(i, a[i])

x = 9
if x in a:      			 # 进行是否属于列表成员的判断。该运算速度非常快。
    print("True")
else:
    print("False")

1.12 列表的内置方法 

  • append(obj)  在列表末尾添加新的对象
  • count(obj)   统计某个元素在列表中出现的次数
  • extend(seq)  在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
  • index(obj)   从列表中找出某个值第一个匹配项的索引位置
  • insert(index, obj)  将对象插入列表
  • pop(obj=list[-1])  移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
  • remove(obj)   移除列表中某个值的第一个匹配项
  • reverse()   反向列表中元素
  • sort([func])   对原列表进行排序
  • copy()    复制列表
  • clear()   清空列表,等于del lis[:]
>>> li = [1,2,3]
>>> li.append([3,3])
>>> li
[1, 2, 3, [3, 3]]

>>> li = [1,2,3,[3,3]]
>>> li.count(3) 
1

>>> li = [1,2,3]
>>> li.extend([4,5])   
>>> li
[1, 2, 3, 4, 5]

>>> li = [1,2,3,2,3]
>>> li.index(3) 
2

>>> li = ['happy','year']
>>> li.insert(1,'new')	
>>> li
['happy', 'new', 'year']

>>> li = [1,2,3]
>>> li.clear() 
>>> li
[]

        注意:其中类似的append、insert、remove等方法会修改到列表本身,并且没有返回值(严格来说,返回的是None) 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全村最好捉的羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值