【Python高级编程】Python中常见的运算符、函数与方法总结

目录

[1. 运算符](#1. 运算符)

[2. 字符串](#2. 字符串)

[3. 列表(有序、可修改,用\[\]表示)](#3. 列表(有序、可修改,用[]表示))

[4 元组(有序、不可修改,用()表示)](#4 元组(有序、不可修改,用()表示))

[5. 集合(无序、无重复,用{}表示)](#5. 集合(无序、无重复,用{}表示))

[6. 字典(无序键值对,用{key:value}表示)](#6. 字典(无序键值对,用{key:value}表示))

[7. 文件操作](#7. 文件操作)

[8. 数据类型的 True/False 对应](#8. 数据类型的 True/False 对应)

总结


1. 运算符

表 1 运算符

运算符 描述
lambda lambda表达式
:= 条件表达式
or 布尔逻辑或
and 布尔逻辑与
not 布尔逻辑非
比较运算符(==/!=/</>/<=/>=等) 比较运算,包括成员检测和标识检测
` ` 按位或
^ 按位异或(XOR)
& 按位与
<</>> 移位
+/- 加和减
*/@//////% 乘、矩阵乘、除、整除、取余
+/-/~ 一元运算符(正、负、按位非)
** 乘方
await x await表达式
x[index]/x[index:index]/x(arguments...)/x.attribute 抽取、切片、调用、属性引用
(expressions...)/[expressions...]/{key: value,...} 绑定或加圆括号的表达式、列表显示、字典显示、集合显示

注 :幂运算符**绑定的紧密程度低于其右侧的算术或按位一元运算符,即2 ** -1结果为0.5。

2. 字符串

Python 字符串由单引号、双引号或三引号括起,所有字符串方法返回新值(不修改原字符串)。

表 2 字符串

函数 / 方法 描述 示例 返回值
capitalize() 首字符转大写 "hello".capitalize() "Hello"
count() 统计子串出现次数 "banana".count("an") 2
decode() 字符串解码 u="中文"; str=u.encode('gb2312'); print(str.decode('gb2312')) 中文
encode() 字符串编码 "你好".encode("UTF-8") b"\xe4\xbd\xa0\xe5\xa5\xbd"
find() 查找子串位置(找不到返回 - 1) "banana".find("n") 2
format() 格式化字符串 "{0} is {1}".format("john", 35) "john is 35"
index() 查找子串位置(找不到报错) "hello".index("e") 1
isalnum() 判断是否全为字母 / 数字 "com12".isalnum() False
isalpha() 判断是否全为字母 "Com10".isalpha() False
swapcase() 转换字母大小写 "hello".swapcase() "HELLO"
upper() 转大写 "This".upper() "THIS"
join() 用间隔符连接序列 "*".join(["T","2","5"]) "T*2*5"
lower() 转小写 "Hello, welcome".lower() "hello, welcome"
replace() 替换子串 "banana".replace("a","") "bnn"
split() 拆分字符串 "welcome to China".split() ["welcome", "to", "China"]
strip() 去除两端空白 " apple ".strip() "apple"
title() 每个单词首字母大写 "hello world".title() "Hello Word"
upper() 把字符串转换为大写 "hello world".upper() "HELLO WORLD"

3. 列表(有序、可修改,用[]表示)

列表是一个有序且可更改的数据集合。在 Python 中列表用方括号表示。

表 3 列表

函数 / 方法 描述 示例 返回值 / 效果
append() 末尾添加元素 ["apple"].append("cherry") 列表变为["apple", "cherry"]
clear() 清空列表 ["apple"].clear() 列表变为[]
copy() 复制列表 ["apple"].copy() 新列表["apple"]
count() 统计元素出现次数 [1,5,2,1].count(1) 2
extend() 扩展列表(加可迭代对象) ["a"].extend(["b"]) 列表变为["a","b"]
index() 查找元素索引 [3,5,1].index(1) 2
insert() 指定位置插入元素 [1,3].insert(2,"one") 列表变为[1,3,"one"]
len() 元素个数 len([1,2,3]) 3
max() 最大元素 max([57,36,145]) 145
min() 最小元素 min([57,36,145]) 36
pop() 移除指定位置元素 [57,36].pop(1) 返回36,列表剩[57]
remove() 删除指定元素 [57,36].remove(57) 列表变为[36]
reverse() 颠倒顺序 [17,2].reverse() 列表变为[2,17]
sort() 排序 [2,17].sort() 列表变为[2,17]

4 元组(有序、不可修改,用()表示)

元组是一个有序且不可更改的数据集合。在 Python 中,元组用圆括号表示。

表 4 元组

函数 / 方法 描述 示例 返回值
count() 统计元素次数 (1,3,5,1).count(1) 2
index() 查找元素索引 (1,3,5).index(5) 2
len() 元素个数 len((1,2,3)) 3
max() 最大元素 max((57,36,145)) 145
min() 最小元素 min((57,36,145)) 36

5. 集合(无序、无重复,用{}表示)

集合中元素是无序的,返回值集合元素顺序不定。

表 5 集合

函数 / 方法 描述 示例 返回值
add() 添加元素 {3,6,9}.add(5) {3,5,6,9}
clear() 清空集合 {3,6,9}.clear() {}
copy() 复制集合 {3,6,9}.copy() {3,6,9}
difference() 集合差集 {3,6,9}.difference({2,4,6}) {3,9}
intersection() 集合交集 {3,6,9}.intersection({2,4,6}) {6}
isdisjoint() 无交集则返回True {3,6,9}.isdisjoint({2,4,6}) False
issubset() 是否为子集 {3,6,9}.issubset({2,3,4,6,9}) True
issuperset() 是否为超集 {2,3,4,6,9}.issuperset({3,6,9}) True
len() 元素个数 len({3,6,9}) 3
min() 最小元素 min({3,6,9}) 3
max() 最大元素 max({3,6,9}) 9
remove() 删除元素 {3,6,9}.remove(3) {6,9}
symmetric_difference() 对称差集(不重复元素) {3,6,9}.symmetric_difference({2,4,6}) {2,3,4,9}
union() 集合并集 {3,6,9}.union({2,4,6}) {2,3,4,6,9}
update() 合并序列 / 集合到原集合 {3,6,9}.update({2,4,6}) {2,3,4,6,9}

6. 字典(无序键值对,用{key:value}表示)

字典中元素是无序的,返回值字典元素顺序不定。

表 6 字典

函数 / 方法 描述 示例 返回值
clear() 清空字典 {"312":78}.clear() {}
copy() 复制字典 {"312":78}.copy() {"312":78}
get() 获取键对应的值 {"312":78}.get("312") 78
items() 返回键值对元组列表 {"312":78}.items() [("312",78)]
keys() 返回键列表 {"312":78}.keys() ["312"]
pop() 删除键并返回值 {"312":78}.pop("312") 78,字典剩{}
update() 更新字典 {"312":78}.update({"747":68}) {"312":78, "747":68}
values() 返回值列表 {"312":78}.values() [78]

7. 文件操作

对文件的操作用函数或方法实现。

表 7 文件

函数 / 方法 描述
open() 打开文件
close() 关闭文件
flush() 刷新缓冲区
read() 读取全部内容
readline() 读取一行
readlines() 读取所有行(返回列表)
seek() 移动文件指针
tell() 返回当前指针位置
write() 写入字符串
writelines() 写入字符串列表

8. 数据类型的 True/False 对应

各种数据对象都可转换成布尔对象。

表 8 True/False 对象

数据类型 True False
整数 非 0(如 1) 0
浮点数 非 0 0.0
复数 非 0 0j
布尔值 True False
None - None
字符串 非空串 ""
列表 非空列表 []
元组 非空元组 ()
集合 非空集合 set()
字典 非空字典 {}

总结

本文系统整理了Python常用数据类型及操作,包含7个核心部分:

1.运算符优先级表(含21种运算符)

2.字符串处理(17个方法,如format()/split())

3.列表操作(13个方法,如append()/sort())

4.元组基础(5个方法)

5.集合运算(15个方法,如union()/intersection())

6.字典操作(9个方法,如get()/update())

7.文件操作(8个函数)及数据类型布尔转换规则。

重点说明了各类数据结构的特性和方法调用规范,其中字符串方法均返回新对象,列表/字典方法多直接修改原对象。

相关推荐
Logic1012 天前
C语言/数据结构字符串题解:最短循环节——找出能重复构成原串的最短基础子串
c语言·数据结构·字符串·枚举·时间复杂度·算法题·kmp优化
Logic1015 天前
C语言/数据结构贪心算法题解:字符串趋同——逐位统计最高频率求最小修改代价
c语言·数据结构·贪心算法·字符串·时间复杂度·频率统计·算法题
Tisfy5 天前
LeetCode 0678.有效的括号字符串:O(n)+O(1)一次遍历
算法·leetcode·字符串·题解·贪心·括号匹配
by209995 天前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
沫璃染墨6 天前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
by209996 天前
学会使用 std::string 类,并理解其内部是如何管理字符串的详细阐述(下)
c++·经验分享·笔记·字符串·类和对象·string
Tisfy8 天前
LeetCode 0020.有效的括号:栈匹配
算法·leetcode·字符串·题解·括号匹配
Logic1018 天前
C语言/数据结构字符串题解:按字符类型重排(数字→字母→符号)——三趟扫描稳定分区
c语言·数据结构·字符串·时间复杂度·计数排序·算法题·ascii
Tairitsu_H9 天前
[Linux系统] 一切皆文件 | 缓冲区机制 | FILE 结构
linux·运维·服务器·文件·缓冲区
Bruce_Liuxiaowei9 天前
元组与具名元组:把「第 3 个字段」变成「price」
数据结构·python·语法·元组