列表
列表(list)是一种有序集合,可任意扩展,随时添加/删除元素,使用索引访问元素,如取最后一个元素可以采用list[-1]
a. 标志
使用[]
b. 基本操作(创建,append( ),pop( ) ,del( ), 拷贝)
# 创建
alpha = ['a','b','c']
# append()
alpha.append('d')
# insert
alpha.insert(2,'e')
# pop
alpha.pop()
alpha.pop(i) //删除指定位置的元素
# del
del(alpha[2])
# 拷贝
浅拷贝
old = [1,2,3]
new = old.copy()
new = [i for i in old]
new = old[:]
深拷贝
new = old.deepcopy(old)
c. 列表相关方法
参考pupil_heart的blog
# 增:
name.insert(2,"wangwei") #列表name的索引为2的位置添加一个元素 wangwei
name.append(“01”) #列表name的末尾,添加一个元素“01”
name.append([1,2,3,4]) #列表name的末尾,添加一个列表
name.extend('abcde') #列表name的末尾,迭代的增加多个元素
迭代着增加:就是数据类型的最小组成单位作为列表的一个元素进行增加
# 删:
name.pop() #按照下标进行删除,默认删除最后一个(有返回值)
name.remove() #remove()直接在字符串中查找括号内的元素,并删除
name.clear() #清空列表,使列表变成一个空的
del name #直接删除内存文件,导致name这个列表不存在
# 改:
name[0] = "x" #通过对索引位置重新赋值,达到更改元素内容的目的
name[0:2] = ["1" , "2" , "3"] #更改可切片
# 查:
name = [1,2,3,4,5,6]
print(name[0]) #通过下表进行查找元素
name.index(“2”) #通过index 查找元素2 在列表name中的位置下标
# 排序和反转:
name.sort() #正向排序
name.sort(reverse = True) #反向排序
name.reverse #反转
# 列表操作函数:
name = [1,2,3,1,23,1,2]
1.name.count("1") #计数,通过count统计列表name中,元素 1 出现的次数
2.len(name) #列表元素个数
3.max(list) #返回列表元素最大值
4.min(list) #返回列表元素最小值
5.list(seq) #将元组seq强制转换成列表
6. enumerate() #打印元素对应的下标
元组
一旦初始化不可修改
a. 标志
`()`
b. 基本操作(创建及不可变性)
# 创建
t = (1,2,3)
t = (1,)
string字符串
a. 定义及基本操作(+,*,读取方式)
所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。
a = 'abc'
b = 'edf'
a+b
b. 字符串相关方法
# center
方法center通过在两边添加填充字符(默认为空格)让字符串居中。
"Middle but center".center(39)
# find
方法find在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。
title = "money is good"
title.find("is")
title.find("is",start,end)
# join
join是一个非常重要的字符串方法,其作用与split相反,用于合并序列的元素。
a=['1','2','3']
b='+'
b.join(a)
# upper/lower
返回大/小写版本
# replace
方法replace将指定子串都替换为另一个字符串,并返回替换后的结果。
"This is a test".replace("is", "eez")
# split
'1+2+3'.split('+')
如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。
# strip
方法strip将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
字符串格式化问题
# 替换字段名
在最简单的情况下,只需向format提供要设置其格式的未命名参数,并在格式字符串中使用未命名字段。此时,将按顺序将字段和参数配对。你还可给参数指定名称,这种参数将被用于相应的替换字段中。你可混合使用这两种方法
"{foo} {} {bar} {}".format(1, 2, bar=4, foo=3)
还可通过索引来指定要在哪个字段中使用相应的未命名参数,这样可不按顺序使用未命名参数。
"{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3)
# 基本转换
print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
s,r,a代表str,repr,ascii进行转换
"The number is {num:f}".format(num=42)
# 宽度、精度
"{pi:10.2f}".format(pi=pi) //宽度为10,精度为0.01
# 符号、对齐和用0填充
在指定宽度和精度的数前面,可添加一个标志。这个标志可以是零、加号、减号或空格,其中零表示使用0来填充数字。
要指定左对齐、右对齐和居中,可分别使用<、>和^
如果要给正数加上符号,可使用说明符+(将其放在对齐说明符后面),而不是默认的-。如果将符号说明符指定为空格,会在正数前面加上空格而不是+。
对于各种十进制数,它要求必须包含小数点(对于类型g,它保留小数点后面的零)。
参考资料
https://www.liaoxuefeng.com/
[挪]-Magnus-Lie-Hetland-Python基础教程(第3版)