Python内置函数2

枚举值: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位小数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值