Python数据类型及操作
一、字符串str
1.替换
- replace(old,new,count)
用new替换old,次数为count,可用于删除(new空)
2.分割、合并
- split(self,sep,maxsplit)
以sep为分隔符,分隔数量<=maxsplit的列表 - partition(sep)
以sep将字符串分成三部分,返回一个3元的元组 - splitlines(keepends)
按行分隔,一行一列表
keepends -- 输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。 - str.join(sequence)
用字符串拼接可迭代对象sequence,拼接符即为原字符串内容
str2=" "
list1=["my","name","is","asf"]
my_name=str2.join(list1)
print(my_name)
#输出:my name is asf
my_name="_".join(list1)
print(my_name)
#输出:my_name_is_asf
3.大小写转换
- capitalize()
把字符串第一个字符大写 - title()
每个单词第一个字母大写 - upper()
字符串大写转换 - lower()
字符串小写转换
4.查询、判断
- find(self, sub, start=None, end=None)
从左找sub,返回第一个该元素位置的索引值,范围为start到end(可省略) - rfind(self, sub, start=None, end=None)
从右找sub,返回第一个该元素位置的索引值 - startswith(self, prefix, start=None, end=None)
检测字符串是否以prefix开头 - endswith(self, suffix, start=None, end=None)
检测字符串是否以suffix结尾 - isalpha()
判断字符串是否均为字母 - isdigit()
判断字符串是否均为数字 - isalnum()
判断是否只有字母和数字 - isspace()
判断字符串是否只有空格
5. 填充、清除
下列函数返回新字符串,均不修改源字符串
rjust(self,width,fillchar)
右侧width长度对齐,从左侧填充fillcharljust(self,width,fillchar)
左侧width长度对齐,从右侧填充fillcharcenter(self,width,fillchar)
居中对齐,两侧填充fillcharlstrip(self,char)
清除左侧char,默认为空格rstrip(self,char)
清除右侧char,默认为空格strip(self,charself,char)
清除两侧char,默认为空格
二、列表list
1.添加
- append(object)
在列表末尾整体添加object,只占一个引索位
a=[1,2]
b=[3,4]
a.append(b)
print(a)
#结果:[1, 2, [3, 4]]
- extend(seq)
在列表末尾逐一插入另一序列seq中的各个元素
a=[1,2]
b=[3,4]
a.extend(b)
print(a)
#结果:[1, 2, 3, 4]
- insert(index,object)
在引索index位置整体插入object
a=[1,2]
b=[3,4]
print(a)
a.insert(1,b)
#结果:[1, [3, 4], 2]
2.修改
通过引索赋值即可修改元素
# name_list[1]='小明'
3.查找
- in,notin
返回布尔值
find_name='小明'
if find_name in name_list:
print("yes")
- index(object,start,stop)
在范围内查找元素object,返回引索值,无则报异常
4.删除
- del
通用函数,通过下标直接删除
del name_list[0]
- pop(index)
移除列表中的一个元素(默认最后一个元素,index=-1),并且返回该元素的值。 - remove(object)
移除列表中object的第一个匹配项,无返回值
5.排序
- sort(cmp=None, key=None, reverse=False)
对原列表进行排序,所有参数均可省略
cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序
key -- 为一个函数,只有一个参数,取自可迭代对象,指定可迭代对象中的一个元素来进行排序,一般用于复杂对象或多维中
reverse -- 排序规则,reverse=True 降序,reverse=False 升序(默认)
student=[
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
student.sort(key=lambda student: student[2]) #lamdba可简便定义函数
print(student)
#结果:[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
- sorted(iterable[, cmp[, key[, reverse]]])
Python内置函数,可对所有可迭代的对象进行排序
iterable -- 可迭代对象。
6.列表推导式
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
三、元组tuple
元组与列表相似,不同之处在于元组的元素不能修改;且元组使用小括号,列表使用方括号。在括号中添加元素,并使用逗号隔开即可创建元组。
元组中只包含一个元素时,需要在元素后面添加逗号。
四、字典dict
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key->value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
1.查询
- 可根据键直接访问,例:info['name']
返回对应的值,键不存在则会报错 - get(key,default=None)
存在则返回对应键的值,否则会返回default(默认为空,可省略) - keys()
用列表返回字典的所有键 - values()
用列表返回字典的所有值 - items()
用列表返回字典的所有k-y元组 - len(dict)
Python内置函数,返回该dict字典的键值对数
2.更新
- 可通过访问键直接修改或添加值
- update(dict2)
将dict2 的 key/value(键/值) 对更新到原字典里。
3.删除
- del
del可根据key单个删除,也可全删除整个字典(此时不保留变量) - clear()
删除字典内所有元素,保留空字典 - pop(key[,default])
删除给定键 key 及对应的值,返回值为被删除的值。key 必须给出,若key不存在则返回 default 值。
五、集合set
无序,唯一
可以使用大括号 { } 或者 set() 函数创建集合,set()可创建空集合
1.添加
- add(element)
将元素element添加到集合中,如果元素已存在,则不进行任何操作。 - update(set)
可添加元素或集合
2.删除
- remove(element)
将元素element从集合中移除,如果元素不存在,则会报错。 - pop()
随机移除一个元素,并返回该元素的值 - discard(element)
删除element,不存在不操作
一些别的操作
- dir(object)
带参数时,返回该数据类型的内置函数;不带参数时,返回当前范围内的变量、方法和定义的类型列表 - zip()
用于将可迭代对象作为参数,将其中对应元素打包成一个元组,返回这些元组的对象
a=[1,2,3]
b=[4,5,6]
c=[4,5,6,7,8]
zipped=zip(a,b)
print(zipped)
print(list(zipped))
print(list(zip(a,c))) #长度不一致,与最短的对象相同
- lambda x,y………,z:
匿名函数,主体是一个表达式,可起到函数速写的作用。允许在代码内嵌入一个函数的定义。
x,y,z等等为参数,expression是表达式,结果为函数的返回值 - filter(function, iterable...)
过滤器,需要两个参数,function过滤函数,和一个序列(字符串、列表、元组都是序列),依次将序列的值传入function中,如果返回True的话,将其重新生成一个列表返回。
list(filter(lambda x:True if x % 3 == 0 else False, range(100)))
#筛选100以内的3的倍数,并生成一个列表。
- map(function, iterable...)
映射,用法和filter()类似,也是将序列放入函数进行运算,但是,不论运算结果为什么,map()都将忠实反馈,返回包含每次 function 函数返回值的新列表。