目录
13 strip() 去掉字符串两边的空白字符或者字符串两边的特殊字符
14 partition() 把字符串分成带有指定字符串的几部分
对列表中每一个元素都使用func函数 返回一个列表(python2)
字符串部分
1 len函数 计算字符串长度
不区分数据类型 所有字符按一个字符计算
a = "张asd32334d"
print(len(a))
# 计算字符串所占的字节数 utf-8下汉字占三个字节
print(len(a.encode()))
end:10,12
2 join函数
将seq中每两个相邻元素中间插入字符串str。返回形成新的字符串。
语法: 'str'.join(seq)
参数说明
str:分隔符。可以为空
seq:要连接的元素序列:字符串、元组、字典
上面的语法即:以str作为分隔符,将seq**所有的元素**合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
a = "张asd32334d"
b = "-".join(a)
print("b:", b)
c = ["a", "b", "c", "d"]
d = "!".join(c)
print("d:", d)
# 字典只取key值进行拼接
dic1 = {'hello': 1, 'good': 2, 'boy': 3, 'doiido': 4}
e = "=".join(dic1)
print("e:", e)
3 os.path.join()函数
语法: os.path.join(path1[,path2[,......]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
os.path.join( '/hello/' , 'good/boy/' , 'doiido' )
end:
'/hello/good/boy/doiido'
4 spilt 分割字符串
把一个字符串按指定的分隔符(必须是字符串中存在的)分割为字符串列表。
语法格式 :
str.split(sep,maxsplit)
参数说明:
str:表示要分割的字符串
sep:指定的分割符
maxsplit:用于指定分割的次数(大于分隔符个数,则默认分割分隔符的个数次)
string1 = "www,gziscas,com,cn"
print(string1.split(',', maxsplit=5))
string2 = "hsadghjf,fdsk,fiorj"
print(string2.split(",", maxsplit=1))
end:
['www', 'gziscas', 'com', 'cn']
['hsadghjf', 'fdsk,fiorj']
5 find() 检测字符串是否包含特定字符
如果包含,则返回开始的索引;否则,返回-1。
示例:
# find()函数
str1 = 'hello world'
# 'wo'在字符串中
print(str1.find('wo'))
# 'wc'不在字符串中
print(str1.find('wc'))
end:6,-1
6 count() 计数
返回str1在string指定索引范围内[start,end)出现的次数。
# count()函数
str1 = 'hello world'
# 统计str中全部字母l的个数
print(str1.count('l'))
# 统计str中从第5+1个字母到最后一个字母中,字母l的个数
print(str1.count('l', 5, len(str1)))
## 输出:
## 3
## 1
7 replace() 字符串替换
将str1中的str2替换成str3,如果指定count,则不超过count次;
语法:
str1.replace(str2, str3,count)
str1 = 'hello world,hello son'
print(str1.replace("hell", "hi"))
# 从左至右只替换1次
print(str1.replace("hell", "hi", 1))
end:
8 startwith() 检查字符串是否以某字符串开头
若是,则返回True;否则,返回False;
## startswith()函数
str8 = "Hello Walt Smith"
print(str8.startswith("Hello"))
## 输出:
## True
9 endwith()检查字符串是否以某字符串结尾
若是,则返回True;否则,返回False;
## startswith()函数
str8 = "Hello Walt Smith"
print(str8.endswith("Hello"))
10 lower() 字符串中所有字母转为小写
# lower()函数
str10 = "Hello Walt Smith"
print(str10.lower())
end:
hello walt smith
11 upper 字符串所有字母大写
str10 = "Hello Walt Smith"
print(str10.upper())
end:
"HELLO WALT SMITH"
12 Center 字符串居中
## center()函数
str12 = "Hello Walt Smith"
print(str12.center(20))
print("st12的原长度为%d" % (len(str12)))
print("str12处理后的长度为%d" % (len(str12.center(20))))
13 strip() 去掉字符串两边的空白字符或者字符串两边的特殊字符
str12 = " Hello Walt Smith "
print(str12.strip())
c = ",,,,a,b,c,,,,,,,,,,,b"
print(c.strip("b"))
14 partition() 把字符串分成带有指定字符串的几部分
## partition()函数
str14 = "Are you believe in yourself?"
# "yourself"在字符串中
print(str14.partition("yourself"))
# "you"在字符串中有两个
print(str14.partition("you"))
# "walt"不在字符串中
print(str14.partition("walt"))
## 输出:
## ('Are you believe in ', 'yourself', '?')
## ('Are ', 'you', ' believe in yourself?')
## ('Are you believe in yourself?', '', '')
15 isdigit() 判断字符串中是否只包含数字
是 返回True 否则 返回False
str12 = "3123"
print(str12.isalnum())
end:True
16 isalpha() 判断字符串中是否只含字母
str12 = "asdasf"
print(str12.isalpha())
是 返回True 否则 返回False
常用其他函数
reverse函数 列表逆序排列
a = [12, 34, 55, 3, 4, 2, ]
a.reverse()
print(a)
sort函数 列表排序
列表 的字母(大写往前排,小写在大写后面)和数字排序,字母和数字不能一起排序
a = [12, 34, 55, 3, 4, 2, ]
a.sort(reverse=True)
print(a)
a.sort()
print(a)
# 是字母就只排序字母,不能数字和字母一起排序
b = ["a", "c", "d", "b", "B", "A"]
b.sort()
print(b)
单词排序
比较完首字母,接着比较第二个字母排序
L = ['cat', 'binary', 'big', 'dog']
L.sort()
print(L)
二维数组排序
# 按学生年龄排序
student = [['Tom', 'A', 20], ['Jack', 'C', 18], ['Andy', 'B', 11]]
student.sort(key=lambda student: student[2])
print(student)
python3 的sort函数 只支持key,不再支持cmp
Sorted函数 可迭代对象排序
sort函数只支持列表 但是sorted函数支持所有可迭代对象,
但是sort函数原列表不变,sorted函数会返回一个排完序的新列表。
a = ("a", "b", "d", "c", "dog")
b = list(a)
print(sorted(a))
print(sorted(b))
指定字典的key排序
此时lambda函数用于指定对列表中所有元素进行排序的准则 此处也就是根据字典的key 即字典的age值来排序
此处个人理解就是 sorted函数对列表的每项元素排列,使用lambda来指定用来列表元素的排序的值。
d = [{"name": 'tom', "age": 1}, {"name": "jack", "age": 15}, {"name": "ming", "age": 4}]
d = sorted(d, key=lambda e: e['age'], reverse=True)
print(d)
使用两个关键字进行排序
先根据第一个关键字排序,再根据第二个关键字排序
d = [{"name": 'a', "age": 1}, {"name": "b", "age": 8}, {"name": "c", "age": 4}]
# 先根据第一个关键字排序,再根据第二个关键字排序
d = sorted(d, key=lambda a: (a["age"], a["name"]), )
print(d)
d1 = sorted(d, key=lambda a: (a["name"], a["age"]), )
print(d1)
d = [["a", 2], ["b", 1]]
# 先根据第一个关键字排序,再根据第二个关键字排序
d = sorted(d, key=lambda x: (x[0], x[1]), )
print(d)
# 此处 x 代表了列表中的单个元素,
d = sorted(d, key=lambda x: (x[1], x[0]), )
print(d)
reduce函数
reduce函数是python内置的高级函数
语法 reduce(func,list)
作用是对list的每个元素反复调用函数func,并返回最终结果值
from functools import reduce
a = [1, 2, 3, 4, 56, 78]
def sum1(x, y):
return x + y
print(reduce(sum1, a))
print(reduce(lambda x, y: x + y, a))
map函数
map函数的语法map(func,list)
对列表中每一个元素都使用func函数 返回一个列表(python2)
python3返回的是一个map对象,需用list转化
from functools import reduce
a = [1, 2, 3, 4, 56, 78]
b = [234, 3, 4, 3, 45, 5]
C = map(lambda x, y: x + y, a, b)
print(list(C))
map(lambda x: x + 1, a)
通过lambda函数 使返回值为元组
from functools import reduce
a = [1, 2, 3, 4, 6, 8]
b = [4, 3, 4, 3, 5, 5]
C = map(lambda x, y: (x ** y, x + y), a, b)
print(list(C))
当不传入func时,map就相当于zip 将多个列表相同位置的元素归并到一个元组(python3必须传func)
通过map可以实现类型转换
元组转列表
map(int,(1,2,3))
# 结果如下:
[1,2,3]
字符串转列表
print(list(map(int, "1234")))
提取字典中的key,置于一个列表中
print(list(map(int, {1: 2, 2: 3, 3: 4})))
print(list({1: 2, 2: 3, 3: 4}.keys()))
strftime函数 实现时间\日期数据的格式化
(将任意格式的日期字符串按要求进行格式化) 可把时间转为星期几 一年中的第几天等