列表
崇高的理想就象生长在高山上的鲜花。如果要搞下它,勤奋才能是攀登的绳索 –佚名
列表的概念
- 列表是由一系列按照特定顺序排列的元素组成.你可以创建任何元素,其中的元素之间没有任何关系。简单来说列表就是一个容器
arr = ["1","2","hello"]
print(arr)
------
# 最后的结果
# ['1', '2', 'hello']
访问列表的元素
- 可以通过序号来访问列表的元素,序号从 0 开始
arr = [1,2,'haha']
print(arr[2])
# 结果haha
- 要是从后面选择的话就是负数,负数从-1 开始
arr = [1,2,'haha']
print(arr[-1])
# 结果 haha
index()方法在列表中查找值
arr = ['11','22','33']
print(arr.index('22'))
# 结果 1
查看元素是否在列表中
- 元素 in list
letters = ['a','b','c','d']
if 'a' in letters:
print('存在')
在列表中增删改
列表增加
- 在列表末尾添加元素必须 append
arr = ["第一个","第二个","第三个"]
arr.append("第四个")
print(arr)
-------
# 最后结果
# ['第一个', '第二个', '第三个', '第四个']
- 在列表中任何位置增加新元素,它在元素的前面加
arr = ["第一个", "第三个", "第四个"]
arr.insert(1, "第二个")
print(arr)
-------
# 最后结果
# ['第一个', '第二个', '第三个', '第四个']
- 在列表末尾追加另一个列表的所有元素
arr = ['a', 'b', 'c']
arr2 = ['d', 'e', 'f']
arr.extend(arr2)
print(arr)
# 它改变的是原数组
列表删除
- 使用 pop()来删除元素,不加序号只能删除列表最后的元素
arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop()
print(arr)
print(result)
----
# 最后结果
# ['第一个', '第二个', '第三个']
# 第四个
- 加了序号,就能删除任意位置
arr = ['第一个', '第二个', '第三个', '第四个']
result = arr.pop(2)
print(arr)
print(result)
----
# 最后结果
# ['第一个', '第二个', '第四个']
# 第三个
- 根据值删除元素,remove 他接受一个参数,要删除的值找到第一个匹配的值
arr = ['第一个', '第二个', '第三个']
arr.remove("第二个")
print(arr)
----
# 最后结果
# ['第一个', '第三个']
- 要是内部有相同的数据,他只删除掉第一个
arr = ['第一个', '第二个', '第三个', "第二个"]
arr.remove("第二个")
print(arr)
----
# 最后结果
# ['第一个', '第三个',"第二个"]
- 清空整个列表
arr = ['a','b','c','d']
arr.clean()
# 结果 清空整个数组
列表排序
- 正序 sroted 由小到大
arr = ['d', 'c', 'a', "b"]
arr.sort()
print(arr)
----------
# 最后结果
# [a,b,c,d]
- 反序 要是想反序就只能 reverse=True 由大到小
arr = ['d', 'c', 'a', "b"]
arr.sort(reverse=True)
print(arr)
----
# 最后结果
# ['d', 'c', 'b', 'a']
- 临时排序不改变原数组 sorted
arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr)
print(arr)
print(arr2)
-------
# 最后结果
# ['d', 'c', 'a', 'b']
# ['a', 'b', 'c', 'd']
- 反向排序
arr = ['d', 'c', 'a', "b"]
arr2 = sorted(arr, reverse=True)
print(arr)
print(arr2)
------
最后结果
['d', 'c', 'a', 'b']
['d', 'c', 'b', 'a']
- 反转顺序 reverse
arr = ['d', 'c', 'a', "b"]
arr.reverse()
print(arr)
----
# 最后结果
# ["b","a","c","d"]
列表的个数
- len 个数
arr = [1,2,3]
print(len(arr))
# 结果3
使用 list() 和 tuple() 转换类型
- tuple 将类型变成元祖
print(tuple('hello'))
# 结果
# ('h','e','l','l','0')
- list 将类型变成列表
print(list('hello'))
# 结果
# ['h','e','l','l','0']
列表拷贝 copy 模块
- 列表里面没有对象,或者列表之类的,就是简单的
import copy
result = ['A', 'B', 'C', 'D']
cheese = copy.copy(result)
cheese[1] = '42'
print(cheese)
print(result)
# 结果
# ['A', '42', 'C', 'D']
# ['A', 'B', 'C', 'D']
- 列表里面由复杂的数组,对象等等,必须使用 deepcopy
import copy
result = ['A', [2, 3, 4], 'C', 'D']
cheese = copy.deepcopy(result)
cheese[1] = [5, 6, 7]
print(cheese)
print(result)
# 结果
# ['A', [5, 6, 7], 'C', 'D']
# ['A', [2, 3, 4], 'C', 'D']
列表的循环
- 注意前面的空格
arr = ['d','c','a','b']
for content in arr:
print(content)
# 结果
# d c a b
- 循环语句内部可以嵌套
arr = ["小明第一名", '小红第二名', '小黄第三名', '小黑第四名']
for index in arr:
print(index+"\r\n")
print("----------")
- 也可以通过 enumerate 循环出来序号和内部的值
arr = ['小明','小红','小黑']
for index,content in enumerate(arr):
print(content)
print(index)
列表的截取
截取后是一个新的数组
- 截取[开头:结束] 包前不包后
arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[1:3])
#最后的结果
# ['第二个', '第三个']
- [:结束] 没指定开头的话他会从头部开始截取
arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[:4])
# 最后的结果
# ['第一个', '第二个', '第三个', '第四个']
- [2:] 没指定结尾的话,他从截取的位置到最后
arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[2:])
# 最后的结果
# ['第三个', '第四个', '第五个']
- [-3:] 这个就表示截取从倒数第三位到最后
arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
print(arr[-3:])
---------
# 最后结果
# ['第三个', '第四个', '第五个']
- 复制列表
arr = ["第一个", "第二个", "第三个", "第四个", "第五个"]
arr2 = arr[:]
print(arr2)
-----------
# 最后的结果
# ['第一个', '第二个', '第三个', '第四个', '第五个']