一、列表
数组: 存储同一数据类型的组合;
列表: 可以存储不同数据类型
1.定义列表
# 定义一个空列表
# 定义一个包含元素的列表
# 列表里面存储列表
2.列表特性
# 索引
#切片
#重复
#连接
#for 循环
#成员操作符
#嵌套列表的索引
# 强制转换range(5)的返回值为列表
练习:
假定有下面这样的列表:
names = ['fentiao', 'fendai', 'fensi', 'apple']
输出结果为:'I have fentiao, fendai, fensi and apple.'
3.列表的增加
# append: 追加, 追加元素到列表的最后;
# extend: 追加多个元素到列表中;
# insert: 添加元素到指定索引的前面;
4.列表的删除
# remove: 删除指定的值,列表中有重复字符,只删除先遇到的
# pop删除指定索引的值并返回, 默认情况删除最后一个元素;
# del删除列表元素, 可以通过索引和切片的方式来删除;
# clear: 清空列表
# 删除列表中重复的所有字符
#删除列表中重复字符(保留一个)
5.修改列表元素
# 通过索引修改列表元素;
# 通过切片修改列表元素;
6.查看元素出现的次数
7.查看元素的索引值(索引值1-4之间的shell的索引值)
8.复制
# 该方式不能实现复制, 因为两个变量指向同一块内存空间;
# 第一种实现列表的复制;
# 第2种实现列表的复制;
9. 字母按照ASCII码从小到大排序;
# 字母按照ASCII码从大到小排序;
10. 对于数字排序的案例
11.直接反转, 类似languages[::-1]
列表练习:
用户登陆系统Version2:
1). 已知多个用户名和密码分别保存在列表中;
2). 判断用户名是否存在,
如果登陆的用户不存在,则报错;;
如果用户存在, 则判断密码是否正确:
如果正确, 输出用户登陆成功;
如果不正确, 输出登陆失败;
3). 为防止黑客暴力破解密码, 登陆最多有3次机会;
计算字符个数
练习:计算字符个数
题目描述: 写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入描述: 输入一个有字母和数字以及空格组成的字符串,和一个字符。
输出描述:输出输入字符串中含有该字符的个数。
示例1:
输入:ABCDEF A
输出:1
12.is和==的区别
# id: 在内存中存储的位置
# type: 变量的;类型
# value: 值是否相等;
# == 判断: type, value
# is 判断: type, value, id
# 结论:
# is表示的是对象标识符;表示两个变量的值是否在同一块内存空间;
# ==表示的是值是否相等;
# 总结: is返回值为True, ==返回一定是True;
13.深拷贝与浅拷贝
拷贝:
# # 不是拷贝, 是将li1的指向li的内存位置;
浅拷贝:
深拷贝:
14.可变数据类型和不可变数据类型
# 数值类型, 字符串, bool都是不可变数据类型;
int, float, complex
str
list
bool
# list是可变数据类型;<有增删改查>列表
二、元组
1.元组数据类型
强制转化为元组
2.元组数据特性
# 索引(index)
#切片
# 重复
# 连接
# 成员操作符
# for 循环
# 枚举
2. 元组应用
# 元组应用的第一个场景:
# 元组应用的第二个场景:
3.元组的赋值
4.列表的排序
scores.sort()
# python2中*middle是不能使用的;
最终成绩: 去掉最高分和最低分,求平均
5.通过列表去构建队列的数据结构
6.通过列表去构建栈的数据结构
三、集合
1.集合
2.列表转换为集合
3.列表的去重
4.集合的特性
# 集合的特性: (索引, 切片, 重复, 连接,)===> 不支持, 因为无序;
成员操作符, for循环 ===> 支持;
# 集合是无序的数据类型: 添加元素的顺序和存储的顺序无关;
5.集合的增删改查
# 增加单个元素;
# 增加多个元素;
# 删除指定元素
# 随机删除集合元素
# 清空集合
6.集合操作_交集补集
# 交集
# 并集
# 补集
# 对等差分(并集 - 交集)
# s3是s4的子集?
# s3是s4的父集?
# s1和s2没有交集么? 如果没有交集True,否则返回False;
练习:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作;