1 把班级中的名字存储下来,如何操作?
name1 name2 name3 …… 这种命名方式绝对不行
所以应该怎么办?
2 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
这里是用空格区分的,逗号也可以
但是,应该如何取?
如果通过字符串存储很多信息 1 不好存 2 不好改 所以出现了一种数据类型,叫 列表
列表的命名规则,就是中括号 []
names = []
现在,一个列表就写完了
print(names)
names = ["ZhangYang","Guyun","XiangPeng","XuLiangchen"]
现在想取出 ZhangYang
print(names[0]) 0 代表 从左到右 开始的 第 1 个位置,计算机从 0 开始,二进制的第一个 就是 0
通过位置 读取出来了
print(names[0],names[2])
取出了 ZhangYang 和 XiangPeng
2-1
现在想同时取出 Guyun 和 XiangPeng
print(names[1:2])
只取到了 Guyun 是为什么?
print(names[1:3]) 为什么向后错一个,就取到了 Guyun 和 XiangPeng
起止位置包括,截止位置不包括;
print(names[1:3]) # 这个动作,叫切片
2-2
如果不知道列表长度,想取最后一个,在不知道长度的情况下,取到最后的位置
print(names[-1]) 取得结果 XuLiangChen 这个是从右边开始数
所以,取 XiangPeng 就是 print(names[-2])
names = ["ZhangYang","Guyun","XiangPeng","XuLiangchen"]
print(names[3]) # 切片
print(names[-2]) # 切片
--->
XuLiangchen
XiangPeng
2-3
1 取最后两个值 XiangPeng 和 XuLiangchen
print(names[-1:-3])
结果是[]; 因为是 从左往右数的
如果是 print(names[-3:-1]);最右侧的就会取不到;
--->['Guyun', 'XiangPeng']
解决的办法就是 什么也不写 print(names[-2:]) 结果就是 XiangPeng 和 XuLiangChen
2 print(names[0:3]) 和 print(names[:3])
结果是一样的,前面如果是 0,也是可以忽略掉的
以上是简单的 切片
3 有一个新的需求,现在 想 把 LeiHaidong 放入列表中
3-1 直接追加到后面
names.append("LeiHaidong")
3-2 如果放在一个随意的位置
names.insert(1,"ChenRonghua") 想放哪个位置,就写哪个位置
names.insert(3,"Xinzhiyu")
3-3 修改 Guyun 的值
names[2] = "XieDi"
4 删除列表中的某一元素,删除有 3 种方法
4-1 直接 names.remove("ChenRonghua")
4-2 del names[1]
4-3 names.pop() 删掉了最后一个,这是默认的; 如果输入下标,就可以指定 names.pop(1)
5 取出一个元素,知道一个名字叫 XieDi 现在想取出来,如何通过名字取出来,并找到对应的位置
print(names.index("XieDi"))
找到位置后,现在想取出来
print(names[names.index("XieDi")])
6 如果有同名的人,比如有 两个 ChenRonghua
names = ["ZhangYang","Guyun","XiangPeng","ChenRonghua","XuLiangChen"]
names.insert(1,"ChenRonghua")
---> ['ZhangYang', 'ChenRonghua', 'Guyun', 'XiangPeng', 'ChenRonghua', 'XuLiangChen']
现在不知道有多少个 ChenRonghua,需要统计,那么如何统计 有多少个呢?
print(names.count("ChenRonghua"))
7 names.clear() 这个列表就没了 是清空
8 names.reverse() 反转
9 names.sort() 排序
优先级 符号 > 数字 > 大写 > 小写
依据 Ascii 的顺序
10 extend 方法
比如还有一个列表,是另外的一个班级,名字叫 names2
names2 = [1,2,3,4]
names.extend(names2) 相当于把另一个班级并过来
print(names,names2)
-→ ['4ZhangYang', '#!Guyun', 'xXiangPeng', 'ChenRonghua', 'XuLiangChen', 1, 2, 3, 4] [1, 2, 3, 4]
10-1 现在想删掉 names2
del names2 即可