枚举值:enumerate
l = ['刘翔','姚明','王军霞']
print(l)
# 枚举enumerate的作用,将列表的值赋予与下标
for item in enumerate(l):
print(item)
# 输出元组类型:(0, '刘翔') (1, '姚明') (2, '王军霞')
# 或下面的方法
for i,item in enumerate(l):
print(i,item)
# 输出:0 刘翔 1 姚明 2 王军霞
for i ,item in enumerate(l,10): # 10表示下标从10开始
print(i,item)
# 10 刘翔 11 姚明 12 王军霞
# 也可以用这种方法(range()函数内只能是整数不能是列表,比如:range(l)),也不能直接用:len(l),因为这是个整数,不能做迭代
# 所以需要用:range(len(l))
for i in range(len(l)):
print(i)
print(l[i])
# 输出:0 刘翔 1 姚明 2 王军霞
any()和all()
l = [0,'string',True]
# any()和all() 入参需要是一个可迭代对象,如果是数字,布尔,会直接报错
print(any(l)) # or 可迭代对象里一个是True,就返回:True,
print(all(l)) # and 可迭代对象里一个是False,就返回:False
zip()和dict()的混用
l1 = ['赛罗','迪迦','泽塔']
l2 = ['英雄传1','英雄传2','英雄传3']
l3 = ['21集','32集','23集']
a = zip(l1,l2,l3)
print(a) # 输出一个zip对象 ; 需要使用for循环,或转化为list才能输出具体内容
print("__iter__" in dir(a)) # dir():用于查询参数内,可使用的方法,这里判断a是否是可迭代的,返回:True
# 因为a是可迭代的,所以用for循环查看下
for i in a:
print(i)
# 输出3个元组;
# ('赛罗', '英雄传1', '21集')
# ('迪迦', '英雄传2', '32集')
# ('泽塔', '英雄传3', '23集')
# 使用zip和dict快速创建字典
l1= ['a','b','c']
l2= [1,2,3]
print(dict(zip(l1,l2)))
# 输出:{'a': 1, 'b': 2, 'c': 3}
# 如果是直接使用dict创建字典
# print(dict(l1,l2)) # 这样会直接报错dict只能输一个参数:dict expected at most 1 argument, got 2
a = dict([('a','b'),(1,2)])
# 输出:{'a': 1, 'b': 2, 'c': 3}
# 总结,zip()和dict()一起使用,因为dict入参只有一个,所以用zip,而zip参数只能用2个元组/列表才能创建字段
# zip的作用是是将2个可迭代对象(包括元组,列表,集合,字符串)转化为数组
# 下面这个是通过元组+字符串的组合
a=('a','b','c')
l = 'cedf'
z = zip(a,l)
for i in z:
print(i,type(i))
# 输出('c', 'a') <class 'tuple'>
# ('e', 'b') <class 'tuple'>
# ('d', 'c') <class 'tuple'>
# 下面这串是列表+集合
t =['a','b','c']
s = {1,2,3}
for i in zip(t,s):
print(i,type(i))
# 输出('a', 1) <class 'tuple'>
# ('b', 2) <class 'tuple'>
# ('c', 3) <class 'tuple'>
slice():可复用切片 ;
列表的切片是闭区间,就是最左和最右都能取到,因为他是[]
s1 = '这个夏天非常的热'
s2 = '去年没这么热,也没下这么久的雨'
# slice(0,6,2) # 表示从0开始数,跨度是2;(6-0)/2=3,可以取3个数,这个是我自己算的
ss = slice(1,6,2) # 定义一套切片方法,其他可迭代对象可以直接用
print(s1[ss]) # 输出:个天常
print(s2[ss]) # 输出:年这热
ord()和chr(),这2个是一对的
print(ord('人')) # 输出:20154,表示在编码的第2154号位置
print(chr(20154)) # 输出:人,表示20154号位置存储的是”人“
for i in range(65536): # 这里可以输出所有的字符
print(chr(i),end=" ")
repr():一个字符串最应该表示的方式
print(str("现在是夏天,天气'超级\t热")) # 这里输出:现在是夏天,天气'超级 热
print((repr("现在是夏天,天气超级\t热"))) # 这里输出:"现在是夏天,天气'超级\t热" 解释是连带左右两边的引号和里面的制表符都直接打印,没做任何转换,有还原字符串的效果
r字符串:当字符串出现转义支付,又不想用转义字符,在正则表达式用的多
print('我是\t谁') # 输出:我是 谁
print(r'我\n是\t谁') # 输出:我\n是\t谁
formate()
a = 30
print(format(a,'08d')) # 输出:00000030 ,“08d”:0表示填充物,8表示一共8位,b表示整数
print(format(a,'08b')) # 输出:00011110 "08b":b表示二进制
f = 1.34
print(format(f,'.5f')) # 输出:1.34000 “.5f”:表示小数点后面保留5位小数