lst=[1,2,3]+[4,5,6]
print(lst)
结果是拼接成一个列表
lst=[1,2,3,4,5,6]
打开Python文档
找到图书馆
找到类型
可以看到我们学过的知识点
下面我们用一个实例来看它的用法。
heros =['钢铁侠', '蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人']
print(heros.index('猪猪侠'))
结果可以看到,它的索引位置是2
如果列表中有两个或者多个相同元素,获取的将是第一个元素的索引位置。
如果需要后面的元素,可以指定一个起始位置。
如:
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠']
print(heros.index('蜘蛛侠',2))
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
print(heros.index('蜘蛛侠',2,8))
总结:index()函数第一个参数是列表名,第二个参数是起始位置,第三个参数是结束位置。当然,如果没必要,后面的两个参数可以不写。
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
print(heros.count('蜘蛛侠'))
如果找的元素在列表中没有,结果返回0 。
如果一个列表无线延长,可以估计一个位置来查找。
列表的优点是存储数据方便,缺点是查找元素不方便,后面字典可以解决这个问题。
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
假如我想把列表里的“钢铁侠”改成“雷神”,直接这样:
heiros[0]='雷神'
例题:
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
print('修改前',heros)
del heros[1]
print('修改后',heros)
例题:
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
print('修改前',heros)
heros[0:2]=['葫芦娃','黑猫警长']
print('修改后',heros)
如果添加的元素大于切去的元素,那么多出来的元素会依次往后顺延。
如果添加的元素小于切去的元素,那么原来被切的所有元素被添加的元素替代。
也可以加上步长来切片替换,当设置了步长,序列中的元素必须和你切片中的元素保持一致:
我们可以看到对应的元素被取代了,如果数目不一致就会报错。
也可以通过切片来删除列表中的元素:
例如:我要删除下面列表中的“孙悟空”和“猪八戒”
heros =['钢铁侠','蜘蛛侠','猪猪侠','孙悟空', '猪八戒','沙和尚','绿巨人','蜘蛛侠','泰山']
heros[3:5]=[]
print('heros')
结果:
当然你可以用del删除也是可以的。
上述的操作都是针对可变序列的,不可变序列是不适用的。如字符串。
如:
s='python'
s[1]='j'
print(s)
结果就报错了,如果想修改,可以把不可变序列转换成可变序列
如:
s='python'
s=list(s)
s[1]='j'
print(s)
结果
在刚才打开的python文档中往下拉可以看到修改列表的方法
我们在下面的列表:
heros=['葫芦娃','黑豹','灭霸']
在“灭霸”前面插入一个元素“金刚”
heros=['葫芦娃','黑豹','灭霸']
heros[2:2]=['金刚']
例如:
heros=['葫芦娃','黑豹','灭霸']
heros.append('金刚')
print(heros)
例题:
heros=['葫芦娃','黑豹','灭霸']
heros.insert(2,'黑寡妇')
print('heros')
extend() 方法需要一个序列作为参数,会将序列中的元素添加到当前的列表当中
例题:
heros=['葫芦娃','黑豹','灭霸']
heros.extend(['猪八戒','孙悟空'])
print(heros)
heros=['葫芦娃','黑豹','灭霸']
heros+=['猪八戒','孙悟空']
print(heros)
例题:
heros=['葫芦娃','黑豹','灭霸']
heros.clear()
print(heros)
这个方法是有返回值的
例题:
heros=['葫芦娃','黑豹','灭霸']
heros.pop(2)
print(heros)
result=heros.pop(0)
print(result)
例题:
heros=['葫芦娃','黑豹','灭霸']
heros.remove('黑豹')
print(heros)
heros=['葫芦娃','黑豹','灭霸']
heros.reverse()
print(heros)
括号里面可以传参sort(reverse=True)代表降序
例题
num=[1,2,3,4,5,6,7]
num.sort(reverse=True)
print(num)
指的就是将列表中的元素提取出来
num=[1,2,3]
print(num[0])
print(num[1])
print(num[2])
例题
i=0
heros = ['钢铁侠', '蜘蛛侠', '猪猪侠', '孙悟空', '猪八戒', '沙和尚', '绿巨人', '蜘蛛侠', '泰山']
while i < len(heros):
print(heros[i])
i+=1
语法:
list=[1,2,3,4]
for i in list:
print(i)
每循环一次,将序列中的元素赋值给变量i,i也可以换成其他的字母。列表中有几个元素就会循环几次。
print(range(5))
print(range(0,5))
print(range(2,5))
print(range(0,10,2)
print(list(range(10)))
print(list(range(0,10)))
print(list(range(0,10,2)))
range()中传递的是几,就执行几遍循环。
例题:
for i in range(10):
print('I love you!')
例题:找100内能够被3整除的数
for i in range(1,101):
if i%3==0:
print(i)
# 列表推导式一
list_b = [b for b in range(5)]
print(list_b)
结果
[0, 1, 2, 3, 4]
# 列表推导式二: in后面跟其他可迭代对象,如字符串
list_c = [7 * c for c in "python"]
print(list_c)
结果
['ppppppp', 'yyyyyyy', 'ttttttt', 'hhhhhhh', 'ooooooo', 'nnnnnnn']
# 带if条件语句的列表推导式
list_d = [d for d in range(6) if d % 2 != 0]
print(list_d)
结果
[1, 3, 5]
# 多个for循环
list_e = [(e, f * f) for e in range(3) for f in range(5, 15, 5)]
print(list_e)
结果
[(0, 25), (0, 100), (1, 25), (1, 100), (2, 25), (2, 100)]
# 嵌套列表推导式,多个并列条件
list_g = [[x for x in range(g - 3, g)] for g in range(22) if g % 3 == 0 and g != 0]
print(list_g)
结果
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20]]
推荐书目:《Python全国计算机等级二级考试》
列表a=[1,2,3,4,5,6]不通过函数的方式实现列表反转([6,5,4,3,2,1])
答案:
a=[1,2,3,4,5,6]
lst=a[::-1]
print(lst)
结果
推导:第一个冒号是切片取所有值,第二个冒号是设置步长,步长为-1时,从后往前依次取值。
猜数字0-10,给用户9次机会,让他怎么也猜不对
答案
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(9):
a = int(input('请输入一个0到9的数字'))
if a in lst:
print('对不起你输入错误')
lst.remove(a)
print(f'答案是{lst}')
两个列表a=[11,22,23],b=[22,23,24]获取列表中相同的元素。
答案:
a=[11,22,23]
b=[22,23,24]
lst=[]
for i in a:
if i in b:
lst.append(i)
print(lst)