Day 07 容器类型之列表
1. recode
1. 基本数据类型
int float bool complex str list dict tuple set
类型名()——————>转换数据类型
2. 字符串
str
a. 双引号或者单引号括起来的: "abc"、"123"、'\u4f17'
b. 获取单个字符————>字符串[下标]
c. 获取一部分字符————>字符串[:],字符串[::]
d. +, *, 比较,一般比较两个字符大小比较多
e. 常见字符串方法例如: len()、chr(由编码值获取字符)、ord(获取字符编码值)
f. 格式化字符串:%s、%d、%.nf {}.format()
3. 分支结构
if 条件语句:
语句
if 条件语句:
语句1
else:
语句2
if 条件语句:
语句1
elif 条件语句2:
语句2
else:
语句3
4. 循环结构
for 变量 in 序列(容器类型的数据):
循环语句
while 条件语句:
循环语句
break、continue、else
break和continue只能在循环体里面
break 直接结束整个循环
continue 结束当次循环
else 当所有循环正常完成结束后,执行else
2. 认识列表
列表(list):
1. 什么是列表
列表是python中的容器类的数据类型,可以用来存储多个数据,注意:列表是可变的,有序的可变是指列表的元素的值和位置以及列表的长度可变,增、删、该有序是指列表确定后列表的每个元素都是有顺序的,可以通过下标来获取元素
2. 列表的字面量
格式:[元素1, 元素2, 元素3, ……, 元素n]
[]————>空列表
列表中的元素可以是任何类型的数据————>包括整数,浮点型、复数、bool值、列表、元组、集合、函数、类的对象等等
list1 = [1, 23, "abc"] # 声明一个变量lis1,有三个元素
list2 = [[1, 2], "abc", True, False] #声明一个列表,有四个元素,列表、字符串、bool值
注意:变量也可以作为列表的元素
name = "路飞"
names = ["二扬", "小花", "小红", name]
print(names)
3. 获取元素
1. 获取单个元素
列表[下标] 说明:列表一旦确定,列表中每个元素的下标就确定了,下标的范围0列表长度或-1-列表长度
names = ["路飞", "娜美", "佐罗", "山治", "罗宾"]
print(names[0], names[-4])
print(names[2])
print(names[20]) 报错,list index out of range
2. 获取部分元素(切片)————>结果是一个新的列表
和字符串切片一样,列表[起始下标:结束下标], 列表[起始下标, 结束下标, 步长]
print(names[1:3])
print(names[:4:2])
print(names[::-1])
4. 元素的增、删、改
films = ["绿巨人", "钢铁侠", "蜘蛛侠", "神奇四侠"]
1. 增(增加元素),直接修改列表
a. append(),在列表最后添加元素
films.append("美国队长")
print(films)
films.append("恐怖游轮")
print(films)
b. insert(下标, 元素),在指定下标前添加指定元素
films.insert(1, "双瞳")
print(films)
films.insert(0, "雷神")
print(films)
c. +
film1 = ["雷神"]
film2 = ["美队"]
print(film1 + film2)
2. 删(删除列表元素)
a. del 列表[下标]————>删除列表中指定位置的元素
del语句是python中用来删除数据的语法,可以删除任何数据
print("--------------------------------------")
a = 10
del a
# print(a) 报错,a没有被声明
heros = ["盖伦", "儿童劫", "维克托", "提莫", "托儿索", "儿童劫"]
print(heros)
del heros[-2]
print(heros)
b. 列表.remove(元素) ————>删除列表中指定的元素,删除的是从左至右第一个
heros.remove("儿童劫")
print(heros)
c. 列表.pop() --->将列表中最后一个元素取出
列表.pop(下标) --->将列表中指定的元素取出
gun = ["98k", "M4", "AK", "AWM", "Vector"]
print(gun)
a = gun.pop()
print(gun, a)
b = gun.pop(1)
print(gun, b)
3. 改(修改列表中的元素)
a. 单个元素修改:列表[下标] = 新值 ---->修改指定下标对应的元素
print("============================")
teachers = ["余婷", "路飞", "二扬", "索罗"]
print(teachers)
teachers[0] = "yuting"
print(teachers)
b. 切片修改:列表[:] = 新值
name = ["ers", "haha", "yuting", "chris", "xeman"]
name[0:2] = "eryang", "han"
print(name)
5. 练习
遍历列表中的元素
a. for循环遍历列表,拿到的就是列表中的每个元素
numbers = [1, 3, 5, 7, 9, 11]
for x in numbers:
print(x)
b. 通过下标遍历元素
for index in range(0, len(numbers)):
print(numbers[index])
练习1:有一个列表保存一个班的五个学生的成绩,求总成绩
grades = [100, 90, 80, 20, 10]
sum1 = 0
for i in grades:
sum1 += i
print(sum)
练习2:用一个列表保存多个人的名字(英文),将列表中所有的人的名字首字母大写
names = ["erYang", "jone", "alIce", "hAn", "bob", "hesan"]
print(names)
for i in range(len(names)):
names[i] = names[i].title()
print(names)
练习3:删除上一个列表中首字母是H的人的名字
for name in names[:]:
if name[0] == "H":
names.remove(name)
print(names)
names = ["Eryang", "Jone", "Alice", "Han", "Bob", "Hesan"]
index = 0
while index < len(names):
name = names[index]
if name[0] =="H":
names.pop(index)
continue # 或者 index -= 1
index += 1
print(names)
练习4:用一个列表保存一个班的成绩,删除不及格的同学的成绩
score = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
for x in score[:]:
if x < 60:
score.remove(x)
print(score)
scores = [100, 99, 20, 39, 50, 66, 77, 39, 94, 5, 88, 43]
index = 0
while index < len(scores):
score = scores[index]
if score < 60:
scores.pop(index)
index -= 1
index += 1
print(scores)
6. 列表的相关运算
1. +
列表1 + 列表2 会将两个列表合并产生一个新的列表
list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
print(list1 + list2)
print(list1, list2)
2. *
列表*n 将列表中的元素重复n次,产生一个新的列表
print(list1 * 3)
print("================")
3. 比较运算符
a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)
print([1, 2, 3] == [2, 1, 3])
print([1, 2, 3] == [1, 2, 3])
b. is 比较两个列表(地址)是否相等(面试的区别)
id、value、type
id--->数据在内存的地址
value--->数据的值
type---->数据的类型
python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)
c = a
print(c is a)
c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个
元素,如果相等依次比较,不同类型的无法比较
print([1, 2, 3, 5] > [1, 2, 3, 4])
7. 列表赋值
1. +
列表1 + 列表2 会将两个列表合并产生一个新的列表
list1 = [1, 2, 3]
list2 = ["a", "b", "c"]
print(list1 + list2)
print(list1, list2)
2. *
列表*n 将列表中的元素重复n次,产生一个新的列表
print(list1 * 3)
print("================")
3. 比较运算符
a. list1 == list2 判断两个列表中的元素(值)是否相等(个数, 值, 顺序)
print([1, 2, 3] == [2, 1, 3])
print([1, 2, 3] == [1, 2, 3])
b. is 比较两个列表(地址)是否相等(面试的区别)
id、value、type
id--->数据在内存的地址
value--->数据的值
type---->数据的类型
python 中变量存储数据的时候存储的是数据的地址(id),取出来的是值(value)
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)
c = a
print(c is a)
c. <、> 两个列表比较大小,比较的是每个元素的大小,一般比较列表的第一个
元素,如果相等依次比较,不同类型的无法比较
print([1, 2, 3, 5] > [1, 2, 3, 4])
网友评论