五大金刚之list八大操作详解
列表是最常用的Python数据类型之一,也是五大金刚中操作方式最多的一个数据类型。
本文将从八个角度粉碎性击破这一难点。
1.创建
-
pyhon中list中不需要具有相同的类型,用[ ]表示一个列表
-
主要有两种创建方法:用[]括住直接创建,或者用关键词list()创建
a = [1,2,3,4]
b= ["zhangsan","lisi","wangwu"]
c = [1,2,"zhangsan",(1,2)] #但元组(1,2)将视为一个元素
>>[1, 2, 3, 4]
>>['zhangsan', 'lisi', 'wangwu']
>>[1, 2, 'zhangsan', (1, 2)]
- list()可接受一个iterable的对象
d = list("hello")
f = list(range(4))
g = list((1,2,3,4))
>>['h', 'e', 'l', 'l', 'o']
>>[0, 1, 2, 3]
>>[1, 2, 3, 4]
2.增加
- 增加元素主要有三种方法:append,insert,extend
append: 可以在列表后面增添一个新元素
cat = []
cat.append("tuantuan")
cat.append("yuanyuan")
print(cat)
>>['tuantuan', 'yuanyuan']
insert: 可以在指定元素前面增添一个新元素
cat.insert(1,"daju")
cat.insert(8,"maoye") #如果指定位置超出列表范围,会自动加到最后一位
print(cat)
['tuantuan', 'daju', 'yuanyuan', 'maoye']
extend: 两个列表做加法
dog = ["haha","beibei"]
cat.extend(dog) #将dog加入到cat里
print(cat)
>>['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha', 'beibei']
3.删除
- 对于一个列表有三种删除方式:del,pop,remove
del:为python自带的运算符,不需要加括号
print(cat)
del cat[-1]
print(cat)
['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha', 'beibei']
['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha']
pop和del直接删除不同,它是将元素拎出来删除
- 默认去掉最后一个
- 可以指定下标
- 会返回pop的值
l = [1,2,3,4,5]
print(l.pop())
print(l.pop(0))
print(l)
>>5
>1
>>[2, 3, 4]
remove 是定义在list下面的一个方法,只会删除符合条件的元素
print(l)
if 2 in l:
l.remove(2)
print(l)
>>[2, 3, 4]
>>[3, 4]
4.修改
- 通过索引对指定数值进行修改
p = [1,2,3,4,5]
p[0] = 9
print(p)
>>[9, 2, 3, 4, 5]
5.查找
- 查询元素[ ],查询索引index(),查询长度len()
u = [3,8,7,5,2]
print("第二个元素是: ",u[1])
print("元素2的索引值是:",u.index(2))
print("列表长度是:",len(u))
>>第二个元素是: 8
>>元素2的索引值是: 4
>>列表长度是: 5
6.操作
- 主要有循环、+、* 、sort、reverse、max、min
循环
name = ["崔","张","李","王"]
for n in name:
print(n ,end="")
print()
for index,n in enumerate(name):
print(f"no.{index} is {n}")
>>崔张李王
>>no.0 is 崔
>>no.1 is 张
>>no.2 is 李
>>no.3 is 王
基本操作
print(name*2)
>>['崔', '张', '李', '王', '崔', '张', '李', '王']
print(name+[1,2,3])
>>['崔', '张', '李', '王', 1, 2, 3]
排序
- reverse() 将列表倒序排列,该方法没有返回值。
- sort() 将列表正序排列,该方法没有返回值
- sorted() 将列表正序排列,但有返回值,而且不改变原列表
#reverse()
score = [67,84,78,56,98]
score.reverse()
print(score)
>>[98, 56, 78, 84, 67]
#sort()
score.sort()
>>[56, 67, 78, 84, 98]
#sorted()
score = [67,84,78,56,98]
print(sorted(score))
print(score)
>>[56, 67, 78, 84, 98]
>>[67, 84, 78, 56, 98]
max、min
score = [67,84,78,56,98]
print(max(score))
print(min(score))
>>98
>>56
7.切片
- 切片操作 start : end : step
score = [67,84,78,56,98]
print(score[0:4:2])
>>[67, 78]
8.复制
推导式
nums = list(range(10))
print(nums)
nums_2 = [n+2 for n in nums]
print(nums_2)
nums_3 = [n for n in nums if n%2==0]
print(nums_3)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>[0, 2, 4, 6, 8]
复制
nums = list(range(10))
nums_4 = nums[:]
print(nums_4)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
创作不易,如果觉得有帮助的话希望可以点个赞,十分感谢!