python学习记录2022.9

本文介绍了Python编程中几个实用的技巧,包括如何精确比较浮点数、格式化输出、使用enumerate和zip函数处理序列数据、利用map和filter进行高效数据处理,以及迭代器的基本用法。

1:判断两个小数相等最好不要用a==b的形式,应该用abs(a—b)<eps的形式,eps可以是一个很小的数,比如让eps=0.000001,总之,两个数的差足够小,就认为它们相等,具体足够小取多少,根据题目要求来定,一般取10的-6次方。

2:打印调用,同时控制长度:  

        x1=2.444567
        x2=4.6785343
        print("x1={:.5f};x2={:.5f}".format(x1,x2))
          》》x1=2.44457;x2=4.67853

3:enumerate()用法

seasons=["spring","summer","fall","winter"]
enumerate(seasons)
<enumerate object at 0x000002E12E40CEC0>
list(enumerate(seasons))
[(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]
list(enumerate(seasons,start=10))
[(10, 'spring'), (11, 'summer'), (12, 'fall'), (13, 'winter')] 

4:zip() 用法

x=[1,2,3]
y=[4,5,6]
zipped=zip(x,y)
list(zipped)
[(1, 4), (2, 5), (3, 6)]
z=[7,8,9]
zipped=zip(x,y,z)
list(zipped)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

-长度不一致时,按最短的

z="fishc"
zipped=zip(x,y,z)
list(zipped)
[(1, 4, 'f'), (2, 5, 'i'), (3, 6, 's')]

-若希望保留最长的元zip_longest()

import itertools
zipped=itertools.zip_longest(x,y,z)
list(zipped)
[(1, 4, 'f'), (2, 5, 'i'), (3, 6, 's'), (None, None, 'h'), (None, None, 'c')]
 

5:map()用法

mapped=map(pow,[2,3,10],[5,2,3])
list(mapped)
[32, 9, 1000]

等价于计算三次三次方

[pow(2,5),pow(3,2),pow(10,3)]
[32, 9, 1000]

6:filter()函数,过滤函数

list(filter(str.islower,"Fishc"))       #过滤出小写的字母
['i', 's', 'h', 'c']

7:迭代器和迭代对象

一个迭代器一定是一个可迭代对象

可迭代对象是可以重复使用的,而迭代器是一次性的

比如:map()返回的是迭代器,再次调用时为空

mapped=map(ord,"Fishc")
for each in mapped:8:
    print(each)

70
105
115
104
99

list(mapped)
[]

8:把可迭代对象转换成一次性的迭代器,iter()

x=[1,2,3,4,5]
y=iter(x)
type(x)
<class 'list'>
type(y)
<class 'list_iterator'>

9:针对迭代器的函数:next()

将迭代器中元素一一打印出来,防止打印超过迭代器元素数量,加一个参数,比如:

next(p,"没啦")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值