基础的python中关于list的知识
#通过将索引指定为-1,可以返回List中的最后一个元素,以此类推,
#列表为空时,这种方式会发生错误
一。增删改
list_test = ['Alex','Shaw','Python']
1.修改List元素
list_test[0] = 'Linus'
print(list_test)
Output:['Linus','Shaw','Python']
2. 添加元素
(1) append():在末尾添加元素
list_test.append('Python3')
(2) insert():在任意位置插入元素
#在索引0处添加空间,并插入新值,将表中所有元素右移一个位置
list_test.insert(0,'Poison')
3.删除元素
(1) 已知删除元素的索引
del list_test[1]
(2) 从列表中删除元素,但仍然可以继续访问
#弹出List中的最后一个元素
poped_list_test = list_test.pop()
print(list_test)
print(poped_list_test)
Output:['Alex','Shaw','Python']
['Alex','Shaw']
Python
#弹出任意位置的元素
poped_list_test = list_test.pop(1)
print(list_test)
print(poped_list_test)
Output:['Alex','Shaw','Python']
['Alex','Python']
Python
#当要从列表中删除一个元素,且不再以任何方式访问它,使用del;
#在删除后还能继续使用,使用pop()
(3) 根据值删除元素
list_test.remove('Shaw')
remove()方法只删除第一个指定的值,如果在list中存在多个重复的需要删除的值,
则需要使用循环来判断是否删除了所有的这样的值
二。排序
list_test = ['Alex','Shaw','Python']
1.永久性排序
sort():list中的元素按照字母顺序排序
list_test.sort()
print(list_test)
Output:['Alex','Python','Shaw']
list_test.sort(reverse = True) #换向排序,这里的True不能写成true
print(list_test)
Output:['Shaw','Python','Alex']
2.临时性排序
sorted():可以按照特定的顺序显示列表元素,但是不修改原始的排列顺序。
也可以传入reverse = True
print(sorted(list_test))
print(list_test)
print(sorted(list_test),reverse=True)
Output: ['Alex','Python','Shaw']
['Alex','Shaw','Python']
['Shaw','Python','Alex']
3.反转排序
reverse():只反转列表元素排列顺序,并不按照与字母顺序相反的顺序排列
4.确定列表长度
len():从1开始计数,有多少元素长度就是多少
len(list_test)
#发生索引错误时,打印出列表或列表长度,确定问题所在。
三。操作列表
1.遍历列表
list_test = ['Alex','Shaw','Poison','Python']
#循环地从list_test中取出元素,放在变量people中,然后打印
#对于用于存储列表中每个值的临时变量,可以指定任意名称。根据编码规则,
#一般选择有意义能表现列表性质的变量名称
for people in list_test:
print(people)
#for循环可以包含无数代码,但是没有缩进的代码都只执行一次,而不会重复执行。
for people in list_test:
print(people.title() + "you are a bad man.\n")
2.创建数值列表
range(x,y):生成从x开始到y停止(不包含y)的数字
range(x,y,z):z为步长(增长幅度)
for item in range(1,5):
print(item)
Output:1
2
3
4 #不包含5
#直接生成列表
list_test = list(range(1,5))
#指定range()的步长
list_test = list(range(2,11,2)) #生成2到10的偶数的列表
#创建包含1到10的整数的平方的列表
squres = [] #创建空表
for item in range(1,11):
squres.append(value ** 2)
print(squres)
#列表解析
#首先指定一个描述性的列表名,然后指定一个左方括号,并定义一个表达式,
#用于生成要存储到列表中的值
#然后编写for循环,用于给表达式提供值,并加上右方括号
#只用列表解析来创建新的列表,并且保持简短。
#如果列表解析超过了两行,就要开始考虑用for循环重写
squres = [value ** 2 for value in range(1,11)]
print(squres)
#常用数字处理列表的Python函数
min(list_test):找最小值
max(list_test):找最大值
sum(list_test):总和
四。切片
list_test = ['Alex','Shaw','Poison','Python']
1.创建:指定要使用的第一个元素和最后一个元素的索引。同range()函数一样,
在到达指定的第二个索引前面的元素后停止。
print(list_test[1:3]) #[1:3]即为切片,从索引为1开始,到索引2结束
Output:['Shaw','Poison']
#没有指定第一个索引,Python将自动从表头开始
#让切片终止于表尾
print(list_test[1:]) #从索引1开始,到表尾为止
Output:['Shaw','Poison','Python']
#从表尾开始切片也是同样的道理
print(list_test[-3:])
Output:['Shaw','Poison','Python']
2.遍历:要遍历列表中的部分元素,在for循环中使用切片
for people in list_test[:2]: #只遍历前2个元素
print(people.title())
Output: Alex
Shaw
3.复制列表:创建一个包含整个列表的切片,方法是同时省略起始索引和
终止索引([:])
new_list_test = list_test[:]
五。元组(tuple)
不可变的列表称为元组。与list唯一不同是使用()而不是[]
tuple_test = (1,4,2,5,6)
print(tuple_test[1:4])
tuple_test[0] = 7 #修改tuple_test的元素的值,报错
tuple_test = (1,2,3,4,5) #可以修改元组变量,相当于重新给元组赋值