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() 复制列表

猜你喜欢

转载自blog.csdn.net/qq_38342510/article/details/124862965