想一想:前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储一个班级的同学呢?
定义100个变量,每一个变量存放一个学生的名字可行吗?有更好的办法吗?
答:列表
列表的介绍
列表的格式:nameList = [‘xiaoWang’, ‘xiaoZhang’, 5]
其实列表就类似于C语言中的数组,不过列表比数组强大的地方在于列表中的元素可以是不同类型的
列表的遍历
demo01:
nameList = ['xiaoWang', 'xiaoZhang', 'liHua']
for name in nameList:
print(name)
demo02:
nameList = ['xiaoWang', 'xiaoZhang', 'liHua']
length = len(nameList)
i = 0
while i < length:
print(nameList[i])
i += 1
列表的相关操作
列表中存放的数据是可以进行修改的,比如"增"、“删”、“改”、“查”
添加元素(“增” append(),extend(),insert())
append():
a = [1, 2, 3]
b = 9
a.append(b) # 添加单个元素
print(a) # 此时a已经添加了b
a = ['小熊', '小能', '小白', '小新', '风间']
b = ['鸣人', '佐助', '代土']
a.append(b) # 这次添加的是一个列表,会把一个列表当做一个元素整个添加
print(a)
在添加单个元素时,就正常添加单个元素,添加一整个列表时,不会展开,会把整个列表当做一个元素添加
extend():
a = ['鸣人', '佐助', '代土']
b = ['路飞', '索隆', '乔巴']
a.extend(b) # 会把b变量中的列表元素展开,逐一进行添加
print(a)
通过extend可以将另一个列表中的元素逐一添加到列表中
insert():
insert(index,object)在指定位置index前插入元素object
a = [0, 1, 2]
a.insert(1, 3) # 在下标1前面添加元素3
print(a) # [0, 3, 1, 2]
a = ['小熊', '小能', '小白', '小新', '风间']
a.insert(3,["阿呆","正男"])
print(a)
# ['小熊', '小能', '小白', ['阿呆', '正男'], '小新', '风间']
插入一整个列表时,也会把列表当做一个元素插入
修改元素
在修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
cp = ['喜洋洋', '天线宝宝', '海绵宝宝']
cp[0]='花园宝宝'
print(cp) # ['花园宝宝', '天线宝宝', '海绵宝宝']
查找元素(in, not in, index, count)
所谓的查找,就是看看指定的元素是否存在
in, not in:
cp = ['喜洋洋', '天线宝宝', '海绵宝宝']
find = '美羊羊'
if find in cp:
print("找到了相同的名字")
else:
print("很遗憾,没有找到")
cp = ['喜洋洋', '天线宝宝', '海绵宝宝']
find = '美羊羊'
if find not in cp:
print("没有找到相同的")
else:
print("找到了")
index,count:
index和count与字符串中的用法相同!!!
my_list = [1, 2, 3, 4, 5]
t = my_list.index(2)
print(t) # 结果:1
my_list = [1, 2, 3, 4, 5, 2]
t = my_list.count(2)
print(t) # 结果:2
删除元素(del, pop, remove)
类比现实生活中,如果某位同学调班了,那么就应该把这位学生的姓名删除,在开发中经常会用到删除这种功能
del:根据下标进行删除
film = ['喜洋洋', '熊出没', '黑猫警长', '雪怪大作战']
del film[3]
print(film) # ['喜洋洋', '熊出没', '黑猫警长']
pop:默认删除最后一个元素
film = ['喜洋洋', '熊出没', '黑猫警长', '雪怪大作战']
film.pop()
print(film) # ['喜洋洋', '熊出没', '黑猫警长']
不加参数时,拿掉最后一个,如果有参数,则拿掉这个数做下标的元素
remove:根据元素的值进行删除
film = ['喜洋洋', '熊出没', '黑猫警长', '雪怪大作战']
film.remove('熊出没')
print(film) # ['喜洋洋', '黑猫警长', '雪怪大作战']
关于列表还剩余一些拓展的操作,明天继续补充,今天就到这里了