一、列表(List)
列表的定义:
(1)列表(List)是Python中使用最频繁的数据类型,在其它语言中通常叫“数组”。
(2)列表用于存储一串信息。
(3)列表用“[ ]”定义,数据之间用“,”分隔。
(4)列表的索引从0开始。
练习:
(1)定义列表。
例如:定义name_list列表,列表中包含 zhangsan、lisi、wangwu。
name = ["zhangsan", "list", "wangwu", "小王"]
(2)显示列表。
例如:显示name_list列表中的各个名字,print(name_list)
print(name)
(3)知道索引号取值。
例如:显示索引号为2的姓名,print(name_list[2])
print(name[1])
(4)知道值取索引号。
例如:显示lisi的索引号,print(name_list.index("lisi"))
print(name.index("list"))
(5)修改内容。
例如:将lisi修改为zhaoliu, name_list[1]="zhaoliu"
name[1] = "zhaosi"
(6)在列表中增加内容。
append方法:在列表的末尾增加数据,例如:name_list.append("小明")
insert方法:在列表的指定索引位置插入数据,例如,name_list.insert(1,"小红")
extend方法:把其它列表的全部内容插入到当前的列表末尾,
例如:先定义列表 temp_list=["关羽","张飞","赵云","魏延"] name_list.extend(temp_list)
# 增加内容
name.append("zhaoliu")
print(name)
# 插入
name.insert(1, "xiaoming")
print(name)
# 插入内容至列表尾端
temp_name = ["小红", "小刚", "小王", "小李"]
name.extend(temp_name)
print(name)
(7)删除列表中的内容。
remove方法:删除列表中的指定数据。例如:删除name_list列表中的wangwu,name_list.remove("wangwu"),(注:若有多个相同的数据,则删除第一个指定的数据)
pop方法:默认删除列表中的最后一个元素,例如name_list.pop(),也可以指定要删除的元素的索引,例如:name_list.pop(2)
clear方法:清空列表,所有数据清除。
# 删除列表内容
name.remove("zhaosi")
print(name)
# pop方法删除列表最后一个元素,删除指定索引
name.pop()
print(name)
# 删除指定索引
name.pop(1)
print(name)
(8)统计列表的长度(元素的个数),使用len函数。
例如:print(len(name_list))
print(len(name))
(9)统计列表中某个数据出现的次数,使用count方法。
例如:print(name_list.count("wangwu"))
icount = name.count("小王")
print(icount)
(10)列表的升序、降序、逆序。
例如:定义列表score_list = [10, 90, 55, 92, 45, 87, 99, 100, 66, 35, 89, 100]
升序方法。score_list.sort()
降序方法。score_list.sort(reverse=True)
逆序方法。score_list.reverse()
score_list = [10, 90, 55, 92, 78, 90, 24, 78, 62, 19, 84, 100, 39, 57]
print(score_list)
# 升序
score_list.sort()
print(score_list)
# 降序
score_list.sort(reverse=True)
print(score_list)
# 列表反转(逆序)
score_list.reverse()
print(score_list)
结果:
(11)迭代遍历列表。
例如:使用for迭代遍历name_list,并输出。
name_list = ['zhangsan', 'lisi', 'wangwu']
for my_name in name_list:
print("名字是:%s" % my_name)
二、元组(Tuple)
元组的定义:
(1)元组表示多个元素组成的序列。
(2)元素之间用“,”分隔。(注意:列表也是用","分隔)
(3)元组用"( )"定义。(注意:列表是用“[ ]”定义
(4)元组与列表类似,不同之处在于元组的元素不能进行增、删、改的操作,列表的元素能进行增、删、改的操作。
(5)元组的索引从0开始。(注意:列表的索引也是从0开始)
(6)列表一般存储相同类型的数据,元组可以存储不同类型的数据,元组有特定的应用场景。
元组与列表区别:
元组 | 列表 | |
分隔 | “,” | “,” |
定义 | "( )" | “[ ]” |
元素 | 不能进行增、删、改 | 能进行增、删、改 |
索引 | 从0开始 | 从0开始 |
存储数据 | 可以是不同类型 | 一般是相同类型 |
有特定的应用场景 |
练习:
(1)定义一个元组student,包含学号1001,姓名zhangsan,年龄18,成绩96.5 。
student = ("1001", "zhangsan", 18, 96.5)
(2)取相应索引的值
print(student[0])
(3)已经知道数据的值,取该数据在元组中的索引号
print(student.index("1001"))
(4)统计相同数据出现的次数
print(student.count("zhangsan"))
(5)统计元组中的元素的个数
print(len(student))
(6)使用for循环遍历元组。(注意:在实际的开发中,除非能确认元组中的数据类型,否则针对元组的循环遍历需求不是很多。)
for stu_info in student:
print(stu_info)
由于元组中的数据类型通常是不同的,若要使用格式字符串拼接stu_info变量输出,不方便或者出错。
例如:
for stu_info in student:
print("学生的信息是:%d" %stu_info)
(7)格式化字符串和元组
print("学号:%s,姓名:%s,年龄%d,成绩%.1f" %("1001", "zhangsan", 18, 96.5))
可以替换为:
student = ("1001", "zhangsan", 18, 96.5)
print("学号:%s,姓名:%s,年龄%d,成绩%.1f" % student)
(8)元组和列表之间的转换:
用list函数把元组转换为列表,用tuple函数把列表转换为元组。
练习:
number = (1,2,3,4,5)
print(type(number))
num1 = list(number)
print(type(num1))
结果:
number =[1,2,3,4,5]
print(type(number))
num2= tuple(number)
print(type(num2))
结果:
三、字典(dictionary)
字典定义:
- 字典用{ }定义。(注意:元组用"( )"定义。列表是用“[ ]”定义)
- 字典使用“键值对”存储数据,键值对之间使用“,”分隔。(注意:最后的键值对后面不需要加",")
- 键(key)是索引,键必须是唯一的;
- 值(value)是数据;
- 键和值之间使用“:”连接;
- 值可以是任何的数据类型,但键只能使用字符串、数字或者元组。
字典(dictionary)和列表的区别:
(1)列表是有序的对象集合
(2)字典是无序的对象集合
练习:
(1)定义一个学生字典。
student01 = {"name":"zhangsan",
"age":18,
"性别":"男",
"语文":88,
"数学":95,
"英语":72
}
(2)取某个键的值。
(注:使用[],字典[]里面的内容是键,而列表和元组[]里面的内容是索引号。)
print(student01["性别"])
(3)增加/修改。
(注:如果键不存在,则新增键值对。如果键存在,则修改已经存在的键值对。)
student01["学号"] = "20201001"
student01["name"] = "lisi"
(4)删除。(使用pop方法删除键)
student01.pop("age")
(5)统计键值对的数量。(使用len函数)
print(len(student01))
(6)合并字典。(注:如果被合并的字典中包含已经存在的键值,则会覆盖原来的键值对)
school_dict = {"学校":"广东88888大学",
"二级学院":"电信学院"
}
student01.update(school_dict)
print(student01)
(7)清空字典
student01.clear()
print(student01)
(8)循环遍历
for i in student01:
print("%s是:%s" % (i, student01[i]))
四、列表和字典的应用场景
使用字典的多个键值对存储描述一个物体的相关信息,将多个字典放在一个列表中,对列表进行操作和遍历。
student = [
{"name": "张三",
"sex": "男",
"phone": "13811111111"},
{"name": "李四",
"sex": "女",
"phone": "13822222222"},
{"name": "王五",
"sex": "男",
"phone": "13833333333"}
]
print(student)
# 插入新数据
student.append({"name": "赵六",
"sex": "女",
"phone": "13944444444"})
# 删除数据
student.remove({"name": "张三",
"sex": "男",
"phone": "13811111111"})
print(student)
# 遍历列表
for i in student:
print(i)
# 或者
for i in student:
for j in i:
print("%s是:%s" % (j, i[j]))
print()