字符串的相关操作方法(简):
一 写转来转去
1. str.capitalize() # 第一个字母转大写 ## 美 /'kæpɪtəlaɪz/ #
返回值:该方法返回一个首字母大写的字符串
例 ret1 = str.capitalize()
print(ret1)
2. str.lower() # 全部转换成小写 ## 美 /'loɚ/ #
返回值:返回将字符串中所有大写字符转换为小写后生成的字符串
3. str.upper() # 全部转换成大写 ## 美 /'ʌpɚ/
返回值:返回小写字母转为大写字母的字符串
4. str.title() # 每个被特殊字符隔开的字母首字母大写 ## 美 /'taɪtl/ #
返回值:返回"标题化"的字符串,就是说所有单词的首字母都转化为大写。
例 str = "alex eggon,taibai*yinwang_麻花藤"
ret = str.title() # Alex Eggon,Taibai*Yinwang_麻花藤 // # 中⽂也算是特殊字符
print(ret)
二 切来切去
5. str.strip() # 去掉左右两端的空格 ## 美 /strɪp/ #
返回值:返回移除字符串头尾指定的字符序列生成的新字符串
5.1 扩展: str.lstrip() # 去掉左边空格 s.rstrip() # 去掉右边空格
str = "abcdefgabc"
print(str.strip("abc")) # defg 也可以指定去掉的元素,
6. str.replace(old, new[, max]) # 字符串替换 (max)替换次数 ## 美 /rɪ'ples/ #
返回值:返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,
如果指定第三个参数max,则替换不超过 max 次。
7. str.split() # 通过指定分隔符对字符串进行切片 ## 美 /splɪt/ #
返回值:返回分割后的字符串列表.
# str.split(str="", num=string.count(str)) #
# str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等
# num -- 分割次数
三 查找
8. str.startswith("") # 检查字符串是否是以指定子字符串开头, ##美 /stɑrtswɪθ/ #
返回值:如果是则返回 True,否则返回 False
# str.startswith(str, beg=0,end=len(string))
str -- 检测的字符串。
strbeg -- 可选参数用于设置字符串检测的起始位置。
strend -- 可选参数用于设置字符串检测的结束位置。
例: str = "this is string example....wow!!!"
print (str.startswith( 'this' ))
8.1扩展:str.endswith("") # 是否以'xxx'结尾
9. str.count("x") # 统计字符串里某个字符出现的次数 ## 美 /kaʊnt/ #
返回值:该方法返回子字符串在字符串中出现的次数。
# str.count(sub, start= 0,end=len(string))
10. str.find("x") # 检测字符串中是否包含子字符串 str,查找'x'出现的位置 ## 美 /faɪnd/ #
返回值:如果包含子字符串返回开始的索引值,否则返回-1
例:str1 = "Runoob example....wow!!!"
str2 = "exam";
print (str1.find(str2))
print (str1.find(str2, 5)) # 切片找
print (str1.find(str2, 10))
11. str.index() # 求索引位置 ## 美 /'ɪndɛks/ #
返回值:如果包含子字符串返回开始的索引值,否则抛出异常。
四 条件判断
12 str.isalnum() # 是否由字母和数字组成 ## 美 /ɪznʌm/ #
返回值:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
13 str.isalpha() # 是否由字母组成 ## 美 /ɪzpha/ #
返回值;如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
14 str.isdigit() 是否由数字组成 ## 美 /ɪzɡɪt/ #
返回值:如果字符串只包含数字则返回 True 否则返回 False。
例: s17 = "-123.12"
s17 = s17.replace("-", "") # 替换掉负号
if s17.isdigit():
print("是整数")
else:
if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):
print("是小数")
else:
print("不是小数")
五. 计算字符串的长度
13 len(str) # 计算字符串的长度(返回对象(字符、列表、元组等)长度或项目个数)
返回值:返回对象长度
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
===============================================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
内置函数(主)
基础数据类型相关:
和数字相关:
数字类型:
1. bool() # 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False (int的子类)
返回值:返回 Ture 或 False。
2. int() # 用于将一个字符串或数字转换为整型
返回值:返回整型数据。
3. float() # 函数用于将整数和字符串转换成浮点数
返回值:返回浮点数。
数学运算:
1. sum() # 对系列进行求和计算
返回值:计算结果
2. min() # 返回给定参数的最小值,参数可以为序列
返回值:返回给定参数的最小值。
3. max() # 返回给定参数的最大值,参数可以为序列
返回值:返回给定参数的最大值。
4. abs() # 返回数字的绝对值
返回值:函数返回 x(数字)的绝对值,如果参数是一个复数,则返回它的大小。
和数据结构相关:
序列:
列表和元组:
1. list() # 将一个可迭代对象转换成列表
返回值:返回列表。
2. tuple() # 将⼀个可迭代对象转换成元组
返回值:返回元组。
相关内置函数:
1. reversed() # 将⼀个序列翻转, 返回翻转序列的迭代器
返回值:返回一个反转的迭代器。
字符串:
1. str() # 将数据转化成字符串
返回值:返回一个对象的string格式
2. bytes() # 把字符串转化成bytes类型
返回值:返回一个新的 bytes 对象
数据集合:
字典:
1. dict() # 用于创建一个字典
返回值:返回一个字典。
集合:
1. set() # 创建一个无序不重复元素集,可进行关系测试,删除重复数据
返回值:返回新的集合对象{}
2. frozenset() # 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
返回值:返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合
相关内置函数:
1. len() # 返回⼀个对象中的元素的个数
返回值:返回对象(字符、列表、元组等)长度或项目个数
2. sorted() # 对所有可迭代的对象进行排序操作
返回值:返回重新排序的列表。
语法: sorted(Iterable, key=None, reverse=False)
Iterable: 可迭代对象
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每⼀个元素传递给这个函
数的参数. 根据函数运算的结果进⾏排序
reverse: 是否是倒叙. True: 倒叙, False: 正序
例 lst = [1,5,3,4,6]
lst2 = sorted(lst)
print(lst) # 原列表不会改变
print(lst2) # 返回的新列表是经过排序的
dic = {1:'A', 3:'C', 2:'B'}
print(sorted(dic)) # 如果是字典. 则返回排序过后的key
例 和函数组合使用
# 根据字符串⻓度进⾏排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
# 计算字符串⻓度
def func(s):
return len(s)
print(sorted(lst, key=func))
例 和lambda组合使用
# 根据字符串⻓度进⾏排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"] # 计算字符串⻓度
def func(s):
return len(s)
print(sorted(lst, key=lambda s: len(s)))
---------------------------------
lst = [{"id":1, "name":'alex', "age":18},
{"id":2, "name":'wusir', "age":16},
{"id":3, "name":'taibai', "age":17}] # 按照年龄对学⽣信息进⾏排序
print(sorted(lst, key=lambda e: e['age']))
# 利用key进行倒序排序
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1)
## sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
3. enumerate() # 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,
同时列出数据和数据下标,一般用在 for 循环当中。
返回值:返回 enumerate(枚举) 对象。
4. zip() # 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存
返回值:返回一个对象
例:l1 = [1,2,3,]
l2 = ['a','b','c',5]
l3 = ('*','**',(1,2,3))
for i in zip(l1,l2,l3):
print(i)
5. fiter() # 用于筛选过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象
返回值:返回一个迭代器对象
语法: filter(function. Iterable)
function: ⽤来筛选的函数. 在filter中会⾃动的把iterable中的元素传递给function. 然后
根据function返回的True或者False来判断是否保留此项数据
Iterable: 可迭代对象
例 lst = [1,2,3,4,5,6,7]
ll = filter(lambda x: x%2==0, lst) # 筛选所有的偶数
print(ll)
print(list(ll))
-----------------------
lst = [{"id":1, "name":'alex', "age":18},
{"id":2, "name":'wusir', "age":16},
{"id":3, "name":'taibai', "age":17}]
fl = filter(lambda e: e['age'] > 16, lst) # 筛选年龄⼤于16的数据
print(list(fl))
6. map() # 根据提供的函数对指定序列做映射
返回值:返回迭代器。
语法: map(function, iterable) 可以对可迭代对象中的每⼀个元素进⾏映射. 分别取执⾏function
例 计算列表中每个元素的平⽅ ,返回新列表
def func(e):
return e*e
mp = map(func, [1, 2, 3, 4, 5])
print(mp)
print(list(mp))
****改写成lambda
print(list(map(lambda x: x * x, [1, 2, 3, 4, 5])))
----------------
例 计算两个列表相同位置的数据的和
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))
作用域相关:
1.locals() 返回当前作用域中的名字
返回值:返回字典类型的局部变量
2.globals() 返回全局作用域中的名字
返回值:返回全局变量的字典。
====================================
====================================
迭代器相关:
1. range() # 返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表
range(stop)
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
2. next() 迭代器向下执行下一次, 内部实际使用了__next__()⽅法返回迭代器的下一个项目
3. iter() 获取迭代器, 内部实际使⽤的是__iter__()方法来获取迭代器
返回值:迭代器对象
其他:
字符串类型代码的执行:
1. evel() # 用来执行一个字符串表达式,并返回表达式的值
返回值:返回表达式计算结果
2. exec() # 执行储存在字符串或文件中的 Python 语句,
相比于 eval,exec可以执行更复杂的 Python 代码
返回值:exec 返回值永远为 None
3. compile() # 将一个字符串编译为字节代码
返回值:返回表达式执行结果
输入输出:
1. input() # 接受一个标准输入数据
返回值:返回为 string 类型
2. print() # 用于打印输出,最常见的一个函数
内存相关:
1. hash() # 用于获取取一个对象(字符串或者数值等)的哈希值
返回值:返回对象的哈希值
2. id() # 用于获取对象的内存地址。
返回值:返回对象的内存地址
文件操作相关:
1. open() # 用于扣列表打开一个文件, 创建一个文件句柄
模块相关:
1. __import__ # 用于动态加载类和函数
返回值:返回元组列表
调用相关:
1. callable() # 用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;
但如果返回False,调用对象ojbect绝对不会成功。
语法:callable(object对象)
返回值:可调用返回 True,否则返回 False
查看内置属性:
1. dir() # 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;
带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。
如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
返回值:返回模块的属性列表
匿名函数:
1. lamda # 表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数
语法: 函数名 = lambda 参数: 返回值
注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开
2. 匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据
3. 返回值和正常的函数⼀样, 可以是任意数据类型