Python学习笔记8_列表(List)

Python学习笔记8_列表(List)

  • 列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同的类型
  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

1、访问列表中的值

  • 与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。通过索引列表可以进行截取、组合等操作。
  • 索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
  • 使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符

2、列表添加元素的方法

使用 appendinsertextend 方法

  • append 在列表末尾添加元素
  • insert 指定位置插入元素
  • extend 合并两个列表(可迭代对象)

3、列表删除元素的方法

使用 popremoveclear 的方法

  • pop 默认删除最后一个元素,也可传入index参数,用来删除指定位置的元素
  • remove 删除指定元素
  • clear 清空列表
  • 使用 del 也可以删除数据

4、列表修改元素的方法

使用下标直接修改对应元素

5、 列表查找元素的方法

使用 indexcount 的方法和成员运算符 in

  • index 查找元素并返回元素的下标,如果元素不存在就会报错
  • count 查找元素出现的次数,并返回 int 值
x = ['h','e','l','l','o']
print(x.index('o'))			# 4
# print(x.index('t'))
print(x.count('l'))			# 2
print('h' in x)				# True
print('k' in x)				# False

6、列表的遍历

遍历常用的方法有while和for…in…语句

shooter = ['后羿', '黄忠', '虞姬', '公孙离', '狄仁杰','孙尚香', '李元芳','百里守约', '鲁班七号']
i = 0
while i < len(shooter)
	print(shooter[i])
    i++
shooter = ['后羿', '黄忠', '虞姬', '公孙离', '狄仁杰','孙尚香', '李元芳','百里守约', '鲁班七号']
#for..in..的本质是调用面向对象的next方法
for i in shooter
	print(i) 
# 使用内置函数enumerate()进行带下标的遍历
for i, people in enumerate(shooter): 
    print('第%d个是%s' % (i,people))

7、列表的复制

1)直接赋值(这不是复制)

x = [10,20,30]
y = x	# y 和 x 指向同一个内存地址
x[0] = 1	# 修改 x ,y也会随着改变

2)调用列表的 copy 方法

x = [10,20,30]
z = x.copy()	# y 和 x 指向不同内存地址
x[0] = 1		# 修改 x ,z不会随之改变

3)调用copy模块

import copy
x = [10,20,30]
a=copy.copy(x)	#效果等价于copy方法,都是一个浅拷贝
x[0]=1			# 修改x,y 不会改变

4)使用切片进行拷贝

x = [10,20,30]
y = x[:]		# 切片也是一个浅拷贝
x[0] = 1		# 修改x,y 不会改变

7、列表排序

7.1、使用各种排序算法

冒泡排序、快速排序,归并排序、插入排序、选择排序、堆排序、基数排序、希尔排序等算法

7.2、调用列表的 sort 方法可以直接对列表进行排序
nums = [5,9,3,4,7,0,2,1,6,8]
nums.sort()		#默认为正序
print(nums)
nums.sort(reverse=True)		#添加 reverse=True 参数为逆序
print(nums)
7.3、使用内置函数 sorted ,生成一个新的有序列表,不会改变原来的列表
nums = [5,9,3,4,7,0,2,1,6,8]
x = sorted(nums)
print(nums)
print(x)

8、列表反转

8.1、使用列表的 reverse 方法列表进行反转
names = ['张三','李四','王五']
names.reverse()
print(names)
8.2、使用下标和切片输出
names = ['张三','李四','王五']
print(names[::-1])

9、嵌套列表

嵌套列表即在列表里创建其它列表,类似于C语言的二维数组

10、列表推导式

用一个简单的代码创建一个列表

x = [i for i in range(10)]
pront(x)		# [0,1,2,3,4,5,6,7,8,9]

t = [i for i in range(10) if i % 2 == 0]
print(t)		# [0,2,4,6,8]

# points 是一个列表,里面元素都是元组
points = [(x,y) for x in range(5,10) for y in range(10,20)]		# for语句是嵌套的
print(points)		# 共有 50 个元素

11、Python列表函数&方法

函数描述
len()返回列表元素个数
max()返回列表元素最大值
min()返回列表元素最小值
list()将元组转换为列表
方法描述
append()在列表末尾添加新的对象
count()统计某个元素在列表中出现的次数
extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
index()从列表中找出某个值第一个匹配项的索引位置
insert()将对象插入列表
pop()移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove()移除列表中某个值的第一个匹配项
reverse()反向列表中元素
sort()对原列表进行排序
clear()清空列表
copy()复制列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值