Python组蓝桥杯备赛超详细知识点总结笔记_语言基础篇1---基础数据结构

Python组蓝桥杯备赛超详细知识点总结笔记_语言基础篇1—基础数据结构

一、列表

1. 创建列表

lst = ['a', 'b', 'c']

2. 核心方法

操作类型方法功能描述
插入a.append(x)尾插元素 x(可嵌套可迭代对象)
a.extend(x)尾插可迭代对象 x 的所有元素
a.insert(i, x)在索引 i 处插入 x
删除del a[i]删除索引 i 处元素
a.pop(i)删除索引 i 处元素并返回(默认尾删)
a.remove(x)删除首个匹配 x 的元素
a.clear()清空列表(无元素时报 ValueError
其他a.reverse()翻转列表
a.count(x)统计 x 出现次数
a.index(x, s, e)查找 x 首次出现索引(可指定 s/e 范围)
len(a)统计列表长度

3. 列表的遍历

(1)元素遍历
for x in a:
    # 遍历操作代码
(2)下标遍历
for _ in range(len(a)):
    # 遍历操作代码,通过下标 a[_] 访问元素
(3)enumerate 遍历
  • 同时获取元素的下标对应元素
  • enumerate(lst) 可将列表转化为 [(0, 'x1'), (1, 'x2'), …] 形式
  • start 参数可指定下标的起始值,默认为 0。
for i, x in enumerate(a, start=0):
    # i 为下标,x 为对应元素,遍历操作代码
(4)应用场景
  • ① 计算列表元素ans = ans + x

  • ② 计算列表元素平方和ans = ans + x * x

  • ③ 计算列表元素平均值ans / len(a)(ans 为列表元素和)

  • 字符串连接ans = ans + x + ''(x 为字符串类型元素)

4. range 生成数字列表

在 Python 3 中,range 生成的是可迭代对象,需用 list() 转换为列表。

a = list(range(start, stop, step))

5. 列表操作符

  • ① 列表复制b = a * 3,例如 a = [1,2],则 b = [1,2,1,2,1,2]

  • ② 列表拼接c = a + b,例如 a = [1,2]b = ['a','b'],则 c = [1,2,'a','b']

6. 列表内置函数

  • (1)sum(a)

  • (2)max(a) / min(a)

  • (3)len(a)

7. 列表解析式

(1)基本语法
  • 格式:[expression for member in iterable] (其中,expression表达式member可迭代对象中的元素iterable可迭代对象)

  • 示例:

    a = [x ** 2 for x in range(4)]  # 计算 0 到 3 的平方,结果为 [0,1,4,9]
    
(2)筛选操作
  • 格式: [e for m in it if 条件](增加筛选条件,只保留满足条件的元素)

  • 示例:

    a = [x ** 2 for x in range(11) if x % 2 == 0]  
    	# 计算 0 到 10 中偶数的平方,结果为 [0,4,16,36,64,100]
    

8. 列表的复制

  • (1)切片复制b = a[:]

  • (2)copy 方法b = a.copy()

二、字符串

1. 常用方法

类型方法功能描述
判断(bools.isalnum()/s.isalpha()/s.isdigit()字母数字 / 字母中文 / 全数字
s.islower()/s.isupper()/s.isspace()全小写 / 全大写 / 仅空白字符
s.istitle()首字母大写
转换s.title()/s.upper()/s.lower()首字母大写 / 全大写 / 全小写
s.swapcase()大小写互换
ord(s)/chr(x)字符转 Unicode/Unicode 转字符
空白处理s.strip(x)/s.lstrip(x)/s.rstrip(x)删除两侧 / 左侧 / 右侧指定字符 x(默认空格)
替换对齐s.replace(old, new, count)替换子串(count 指定次数,默认全换)
s.rjust/wjust/ljust/center(width, char)右 / 左 / 居中对齐,指定填充字符
s.zfill(width)右对齐,左侧补 0 到 width 长度
查找s.count(sub, s, e)统计子串出现次数(指定 s/e 范围)
s.find(sub, s, e)/s.rfind(sub, s, e)查找首次 / 最后子串索引(未找到返 - 1)
s.index(sub, s, e)/s.rindex(sub, s, e)同上(未找到报错)
s.startswith(sub, s, e)/s.endswith(sub, s, e)判断是否以子串开头 / 结尾
转列表list(s)按字符拆分为列表
列表转字符串"".join(lst)连接列表字符为字符串

2. format 格式化

(1){ } 占位
print("我是{}".format(name))  # name 为要填充的变量
(2){0}, {1} 索引占位

通过索引指定填充的变量顺序,{0} 对应 format 中第一个参数,{1} 对应第二个参数,以此类推。

print("我是{0},{1}岁".format(name, age))  # name 对应 {0},age 对应 {1}
(3){name}, {age} 变量占位

直接在 {} 中写变量名,format 中通过 变量名=值 的形式传递参数。

print("我是{name},{age}岁".format(name="xx", age=xx))  # 需替换 "xx" 和 xx 为实际值
(4)>< 填充
  • {:char>width}:右对齐,左侧用字符 char 填充至总宽度为 width

  • {:char<width}:左对齐,右侧用字符 char 填充至总宽度为 width

示例:

print("{:0>4} {:x<4}".format(25, 25))  # 输出结果为 "0025 25xx"

三、字典

1. 创建字典

(1)直接创建
d = {key1: value1, key2: value2}  # key1、key2 为键,value1、value2 为对应的值
(2)dict 创建
d = dict(k1=v1, k2=v2)  # k1、k2 为键,v1、v2 为对应的值
(3)二元列表创建

列表套列表、列表套元组、元组套列表、元组套元组的形式均可用。

d = dict([(k1, v1), (k2, v2)])  # (k1, v1)、(k2, v2) 为二元组,也可替换为二元列表
(4)zip 创建
  • zip语法:zip(sequence1, sequence2, …)
  • 用法:
    • ①将多个序列相同下标的元素组装成元组,结果是可迭代对象
    • ②结果可以转换成list,但首次转换后迭代器就为空(一次性)
  • 示例:
keys = [k1, k2,]  # 键列表
values = [v1, v2,]  # 值列表
d = dict(list(zip(keys, values))

2. 核心操作

操作类型方法 / 语法功能描述
访问d[key]通过键访问值(key 不存在报 KeyError
d.get(key, default)通过键访问值(key 不存在返回 default,默认 None
添加d[new_key] = value新增键值对
修改d[key] = new_value修改指定键对应的值
删除del d[key]删除指定键值对
d.pop(key)删除指定键值对并返回值(key 不存在报 KeyError
判断key in d判断键是否存在
value in d.values()判断值是否存在
(key, value) in d.items()判断键值对是否存在
拷贝d.copy()复制字典(浅拷贝)
合并d1.update(d2)d2 的键值对合并到 d1d1 改变,d2 不变)

3. 遍历字典

​ ①for遍历:for x in d:(获取字典所有key

​ ②keys()d.keys()(返回dict_keys类型,可进行遍历,也可转列表)

​ ③values()d.values()

​ ④items()for k,v in d.items():

四、集合

1. 集合特性

​ ①元素唯一性

​ ②数据不可变(只能存放数字,字符串,元组)

​ ③无序性

2. 创建集合

​ ①直接创建s={e1,e2, ...}

​ ②类型转换s=set(列表/元组)

3. 核心操作

操作类型方法 / 语法功能描述
添加s.add(x)向集合添加单个元素
s.update(iterable)向集合批量添加可迭代对象中的元素
删除s.discard(x)删除元素 xx 不存在时不报错)
s.remove(x)删除元素 xx 不存在时报 KeyError
s.pop()随机删除并返回一个元素
s.clear()清空集合
运算S & T / s.intersection(t)求交集(ST 共有的元素)
`ST/s.union(t)`
S - T / s.difference(t)求差集(S 中存在、T 中不存在的元素)
S ^ T / s.symmetric_difference(t)求对称差集(仅在 S 或仅在 T 中的元素)
关系判断s.issubset(t)判断 s 是否是 t 的子集(s 的所有元素都在 t 中)
s.isuperset(t)判断 s 是否是 t 的超集(t 的所有元素都在 s 中)
s.isdisjoint(t)判断 st 是否不相交(无共同元素)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值