一.列表
1.什么是列表(list)
列表是Python提供的容器型数据类型
可变 - 列表中的每个元素的值可变,列表的长度可变,列表中的元素顺序可变。
有序 - 每个元素可以通过下标来确定位置。
2.列表的字面量:通过[]括起来,里面有多个元素,用逗号隔开。
[1,2,3]
[10,'abc',True]
num=100;[num,200]
[]--空列表
注意:列表元素的类型可以是任何Python支持的数据类型;并且同一列表中可以有不同的元素类型。
3.获取列表元素(和字符串获取字符的元素一样)
a.获取单个元素
列表[下标]
- 获取列表中制定下标对应的元素
b.获取部分切片元素(切片)
列表[开始下标:结束下标:步长]
c.一个一个的取出所有元素(遍历)
可以使用for循环直接遍历列表拿到每一个元素:(操作时和下标无关)
通过遍历列表中列表元素对应的下标来遍历列表元素
4.增(添加列表元素)
a.append
列表.append(元素)
- 指定的列表元素后边添加指定的元素
b.insert
列表.insert(下标,元素)
- 在指定的下标前插入指定的元素
5.删(删除元素)
a.del
del 列表[下标]
- 删除列表中指定下标指定元素
注意:del是Python关键字,可以删除任何元素 ,这儿下标不能越界
b.remove
列表.remove(元素)
只删最前面的一个
c.pop
列表.pop()
- -将列表中最后一个元素从列表中取出,会返回取出来的元素 -(注意:这个操作不会产生新的列表)
列表.pop(下标)
-- 将列表中指定元素从列表中取出,会返回取出来的元素
(注意:这个操作不会产生新的列表)
坑一: 遍历列表删除部分元素,删不全! --- 遍历的时候对原列表切片
练习:统计一个班的学生的年龄(控制台不断不输入年龄的值,直到输入end为止),删除年龄小于18岁的年龄。
str=[]
age= input('年龄;')
while age !='end':
str.append(int(age))
age=input("年龄:")
print(str)
str1=str[:]
print(str1)
for i in str:
if i<18:
str1.remove(i)
print(str1)
ages=[12,13,20,18,30,10]
index=0
new_ages=[]
while index<len(ages):
age=ages[index]
if age<18:
del_item=ages.pop(index)
new_ages.append(del_item)
else:
index += 1 #不需要删除的时候下标才增加
print(ages,new_ages)
坑二:通过下标遍历列表,删除元素的时候;下标越界和元素获取不全
解决办法:下标对应的元素需要删除,下标值不动:不会删除下标加1
6.改(修改元素的值)
列表[下标] = 新值
---修改列表指定下标对应的值
list1=[1,2,3]
list1[0]='abc'
print(list1)
7.相关运算
(1).相关运算:+,*
a.数学运算
列表1+列表2 -将两个列表中元素合并在一起产生一个新的列表
列表*N - 列表中的元素重复N次,产生一个新的列表
b.比较运算
比较大小和字符串比较原理相等
print([1,2,3]+['a','b','c'])
print([1,2,3]==[1,2,3])
print([1,2,3]==[3,2,1])
(2).in/ not in
元素 in 列表 -- - 判断列表中是否存在指定的元素
print([1,2] in [1,2,3])
print([1,2] in [[1,2],30,'abc'])
(3).len
len(列表) - 获取列表中元素的个数
print(len([[1,'a'],2,'100',True]))
(4).list
list(数据) - 将其他数据转换成列表;只有序列才能转换成列表,并且所有的序列都能转化成为列表
转换的时候是将所有的元素转换成列表的元素
list=10 #注意:不能Python给我们提供的类型的名字来命名,否则会有隐患
list3=('hello')
print(list3)
list4=list(range(11,20))
print(list4)
(5).序列其他方法
max(序列) - 获取序列中最大元素
min(序列) - 获取序列中最小的元素
sum(序列) - 求序列中所有元素之和
注意:以上三个方法,要求序列中的元素必须一致,并且这个类型支持比较运算和加法运算
print(max([19,89,999,2,0.2]))
print(min([19,89,999,2,0.2]))
二.列表方法
1.list,count(obj)
ages = [12, 13, 20, 18, 30, 10,12,12]
print(ages.count(12))
2.list.extend(seq) 末尾追加列表
ages = [12, 13, 20, 18, 30, 10,12,12]
ages1=[1,2,3]
ages.extend(ages1)
print(ages)
3.list.reverse() 反向列表中元素
ages = [12, 13, 20, 18, 30, 10,12,12]
ages.reverse()
print(ages)