1.元组tuple
「元组」定义语法为: (元素1, 元素2, …, 元素n)
注意是圆括号
(1)创建和访问一个元组
Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串
t1 = (1, 10.31, 'python')
print(t1, type(t1))
# (1, 10.31, 'python') <class 'tuple'>
ps:元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
temp = (1)
print(type(temp)) # <class 'int'>
temp = (1,)
print(type(temp)) # <class 'tuple'>
temp = 2, 3, 4, 5
print(type(temp)) # <class 'tuple'>
print(8 * (8)) # 64
print(8 * (8,)) # (8, 8, 8, 8, 8, 8, 8, 8)
创建二维元组
tuple2=(1,2,3),(4,5,6)
print(tuple2)
#((1, 2, 3), (4, 5, 6))
索引 (indexing):获取单个元素
切片 (slicing):获取一组元素
#索引
print(tuple2[0][2])
#3
#切片
print(tuple2[0][0:2])
#(1,2)
(2)更新和删除一个元组
t1=(1,2,3,[4,5,6])
t1[3][0] = 5
print(t1)
#(1, 2, 3, [5, 5, 6])
(3)元组相关的操作符
- 比较操作符
- 逻辑操作符
- 连接操作符 +
- 重复操作符 *
- 成员关系操作符 in 、 not in
(4)内置方法
元组大小和内容都不可更改,因此只有 count 和 index 两种方法
count():可记录元素出现几次
index():找到元素在该元组的下标
t=("i","love","python","i")
print(t.count('i'))#出现了2次
print(t.index('python'))#python下标为2
(5)解压元组
解压(unpack)一维元组(有几个元素左边括号定义几个变量)
t=("i","love","python")
(a,b,c)=t
print(a,b,c)
#i love python
解压二维元组(按照元组里的元组结构来定义变量)
t=(1,2,(3,4,5))
(a,b,(c,d,e))=t
print(a,b,c,d,e)
#1 2 3 4 5
如果你只想要元组其中几个元素,用通配符「*」,然后可以把多个元素丢给rest变量
t = 1, 2, 3, 4, 5
a, b, *rest, c = t
print(a, b, c) # 1 2 5
print(rest) # [3, 4]
如果你根本不在乎 rest 变量,那么就用通配符「*」加上下划线「_」。
t=(1,2,3,4,5)
a,b,*_=t
print(a,b)
#1,2
**
2.字符串
**
(1)字符串的定义
str1='i love python'
print(type(str1))#<class 'str'>
print(5 + 8)#13
print('5' + '8')#58
如果字符串中需要出现单引号或双引号,可以使用转义符号 \ 对字符串中的符号进行转义
print('let\'s go') # let's go
python中常用的转义符号
\ 反斜杠符号
\’ 单引号
\\" 双引号
\n 换行
\t 横向制表符(TAB)
\r 回车
(2)字符串的切片与连接
ps:类似于元组具有不可修改性
ps:索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素
开始计数。最后一个元素的位置编号是 -1。
切片语法[start:end:step]
(不包括end位置,若end位置不写,默认到最后,同理,若start位置不写,默认到最前面)
str1='python'
print(str1[:2])#py
print(str1[1:])#ython
print(str1[-5:-1])#ytho
(3)字符串常用的内置方法
- capitalize() 将字符串的第一个字符转换为大写。
- lower() 转换字符串中所有大写字符为小写。
- upper() 转换字符串中的小写字母为大写。
- swapcase() 将字符串中大写转换为小写,小写转换为大写
- count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定
范围内 str 出现的次数。 - endswith(suffix, beg=0, end=len(string)) 检查字符串是否以指定子字符串 suffix 结束,如果是,返回True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内检查。
- startswith(substr, beg=0,end=len(string)) 检查字符串是否以指定子字符串 substr 开头,如果是,返回True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内检查。
- isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
- ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用 fillchar (默认空格)填充至长度 width 的新字符串。
- rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用 fillchar (默认空格)填充至长度 width 的新字符串
str4 = '1101'
print(str4.ljust(8, '0')) # 11010000
print(str4.rjust(8, '0')) # 00001101
-
lstrip([chars]) 截掉字符串左边的空格或指定字符。
-
rstrip([chars]) 删除字符串末尾的空格或指定字符
-
strip([chars]) 在字符串上执行 lstrip() 和 rstrip() 。即同时执行lstrip()和rstrip()
-
partition(sub) 找到子字符串sub,把字符串分为一个三元组 (pre_sub,sub,fol_sub) ,如果字符串中不包含sub则返回 (‘原字符串’,’’,’’) 。
-
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找
-
replace(old, new [, max]) 把 将字符串中的 old 替换成 new ,如果 max 指定,则替换不超过 max 次
-
split()字符串的切割。my_str.split(sub_str,count).
sub_str:按照什么内容切割字符串,默认是空白字符,空格,tab键。Count:切割几次,默认是全部切割。返回值:列表[] -
splitlines([keepends]) 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为False,不包含换行符,如果为 True,则保留换行符。
-
maketrans(intab, outtab) 创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
-
translate(table, deletechars="") 根据参数 table 给出的表,转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。
(4)字符串格式化
format()格式化参数
#位置传参
str="{0} love {1}".format('i','python')
print(str)
#i love python
#关键字传参
str1="{a} love {b}".format(a='i',b='python')
print(str1)
#i love python
注意:位置参数要在关键参数前面