本文中主要是对
Python
中的常用对象及操作进行总结,包含对象有:
- 字符串
str
:‘ ’、“”、‘‘’ ‘’’即单引号,双引号,三引号表示,不可变的 - 列表
list
,用[ ]表示,可变的 - 元组
tuple
,用()表示,不可变的 - 字典
dictionary
:用{key:value}
键值对表示,可变的 - 集合
set
:set()
创建或者{对象1,对象2,对象3...... }
创建
字符串str
基础
字符串是
Python
中的一种对象类型,用str
表示,单引号、双引号或者三引号括起来,其中三引号多用于函数的注释。
- 变量无类型,对象有类型
-
python
用\作为转义字符 -
str()
函数将整数型对象转化为字符串对象 -
input()
函数输入的返回结果是字符串 -
原始字符串:r'内容',用
r
和引号括起来的就是原始字符串 - 关于
转义符号
见下表:
转义字符 | 作用 |
---|---|
\ | 在行尾时表示:一行未完,接下行 |
\ | 反斜杠符号(行中间) |
\' | 单引号 |
\b | 退格 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制 |
\xyy | 十六进制 |
基本操作
- len():求长度
- +:连接两个字符串
- *:重复字符串,用于复制
- in:判断是否在字符串中
- max()、min():求最大或最小值
- 格式化输出:包含
%s
和format()
函数,前者少用,后者常用 - format(*args, **kwargs)
常用方法
isalpha():判断是否全部是字母
-
split():返回结果是
列表list
,如果加上了括号必须指定一个分隔符- split(" "):
空格
作为分隔符,得到列表list
. - split(":"):冒号作为分隔符
- split():不指定的话,
默认空格
作为分隔符
- split(" "):
-
strip():去掉字符串左右的空格,原来的对象不变,生成新的对象
- lstrip():去掉左边的空格
- rstrip():去掉右边的空格
-
大小写转换:原来的对象不变,生成新的对象
- upper():全部转换为大写
- lower():全部转换为小写
- capitalize():首字母转换为大写
- isupper():判断字母是否全部是大写
- islower():判断是否全部是小写
- istitle():判断是否是
标题模式
,即字符串中的单词的首字母是大写
,其他都是小写
- title():转换成
title
模式,即首字母大写,其余全部小写
-
join():用于拼接字符串,是字符串的方法
列表
在
Python
中列表用[ ]
来表示,括号里面可以是任意的对象,甚至是布尔值,也可以是多种不同的对象,列表是可变的。
看个题目:将[[1,2,3], [4,5,6,], [2,2,2]]变成[[1,4,9], [16,25,36], [4,4,4]]
-
索引和切片
- 索引编号左边从0开始,右边从-1开始;
-
index()
函数查看对象元素的索引 - [start:end:step],如果不指定步长默认为1
-
反转:生成新的值,原来的不变
- [::-1]:通过切片反转
-
reversed()
函数反转,返回可迭代对象,使用list
函数转化为列表
展示
-
操作列表
- len():求长度
- +:连接
- *:重复性操作,复制功能
- in:判断是否在列表中
- max\min:求最值
-
修改列表
- 通过索引直接修改:list[0] = new
- append():末尾追加元素
- a[len(a):] = [x]:类似append()功能
常用列表函数
-
append()
:在最右边追加元素;没有返回值 -
extend()
:将两个列表合并成一个;参数必须是可迭代
的对象;没有返回值;list.extend(L) = list[len(list):] = L
-
count()
:统计元素在列表中出现的次数;若元素不存在,不报错返回值是0 -
index(x)
:x
是列表中的一个元素,函数查看索引编号,只能检索到元素在列表中第一次
出现的位置 - insert(i,x):指定位置插入元素,将元素x插入到索引是i的前面,必须是两个参数,原地修改,没有返回值
-
索引值超过列表的最大值,就直接在后面进行追加一个元素。
关于删除问题
- remove(x):删除列表中第一次出现的x元素,没有x则报错
- pop([i]):括号内的参数是可选的。不写,默认删除最后一个,并且将删除的值作为返回值;写上参数,删除指定索引的元素,并且将该值作为返回值。
-
注意
:remove
的参数是元素,pop
的参数值索引
关于反转问题
-
list.reverse()
:将列表的元素反转过来,实现反转功能,类似[::-1]
;原地反转,没有返回值,,不能用于反向迭代 -
reversed(list):能够用于反向迭代
关于排序问题
- list.sort(key=None,reverse=True):原地修改,没有返回值,默认是从小到大排序,升序
-
sorted(list):参数是列表,类比reversed的用法
字符串和列表比较
相同
- 都是序列类型
- 索引左边从
0
开始,右边从-1
开始 - 都可以用于切片等操作获取多个元素
不同
- 列表是可变的,字符串是不可变
- 字符串中的元素只能是字符,列表中的元素是任意类型的数据
字符串和列表转化
字符串和列表的转化通常使用str.split()和“seq”.join(list),两者可以说是互逆运算:
- split():
- 根据分隔符将字符串转成列表,
str---->list
- 括号内可以指明分隔符和最大索引值,
split(“+”,2)
:以+为分隔符,最大索引值为2,共3个元素
- 根据分隔符将字符串转成列表,
- join():
- 字符串的方法
-
split()
的逆运算 - 传入
join
的对象必须是统一的,比如列表中同时存在数字和字符串则不能用join
元组tuple
元组特点
- 元组
tuple
用圆括号()
括起来 - 元组中的对象是任意的
Python
对象 - 元组中的元素不能更改;如果想修改,可以先转成列表,修改列表中的元素,再转回元组。
- 元组是序列,存在索引和切片
- list()和tuple():实现元组和列表之间的转换
- 重点:元组中只有一个元素时,最后必须带上英文逗号
元组用途
- 元组比列表操作速度快:当需要进行遍历操作,使用元组更好
- 对不需要修改的数据进行“写保护”,使用元组;修改的时候转成列表
- 元组能够用于字典中的key,因为
元组是不可变
的
字典
字典dictionary
是Python
常用的一种数据类型,由键值对key-value
组成。
- 键是唯一的,不能重复;值是可变,也可重复。键值对之间用:隔开。
- 字典可以原地修改,是可变的
- 键是不可变类型(tuple),值是任意的类型(list)
创建
- 空字典大有用处:dict1 = { }
- 直接创建:dict2 = {"name: "Peter", "lang": "python"}
- 通过元组构建字典:dict3 = dict((["name", "Peter"], ["lang", "python"]))
- 使用fromkeys:dict4 = {}.fromkeys(("second", "forth"), "python")
基本操作
- len():返回键值对的数量
- d[key]:返回字典中的键key
- d[key]=value:将value赋给字典中的键key
- del d[key]:删除某个值或者说键值对
字典方法
- dict.copy():复制,注意深浅拷贝,总结一句话:
浅拷贝只复制最外层,深拷贝复制所有可变的数据类型
,请参考深入理解赋值深浅拷贝 - dict.clear():清空,变成空字典
- dict.get(k[,d]):获取某个键中的值,如果键不存在,返回的是None
- dict.setdefault(k[,d]):获取某个键中的值,如果键不存在,将参数中的键值对添加到字典中,与get的不同之处
- items:同时获取k-v的值
- keys:获取key键值
- values:获取值value
pop(k[,d])
以键为参数,删除指定的键值对,并且参数不能省略;如果要删除的字典中的键不存在,就会报错。-
popitem()
随机删除键值对,返回的是就是键值对,元组的形式
-
update()
更新字典,参数可以是字典或者其他可迭代的对象
集合set
创建方法
- 通过set()创建
- 通过{}通过创建,和字典的{}相同,避免歧义
- 创建空集合,必须用set()方法
操作方法
-
add()和update()
- pop()和remove()
-
每次
随机删除
一个元素,并且返回删除的值
;pop()
中不能带有参数
-
remove删除的元素必须是set集合中的,否则报错;
没有返回值
- discard()和clear()
-
discard():删除的元素如果在集合中,就执行操作;元素若不在集合中,不执行任何操作,与remove的不同(报错);没有返回值
4.clear():清空集合中的元素
5.frozenset():创建不变的集合
创建的集合是不可变的,可哈希的