python中的range()函数改进版

本文介绍了一个自定义的Python函数myrange(), 可以实现小数步进的功能,解决了Python标准range()函数仅支持整数步进的问题。该函数能够灵活地处理从大到小或从小到大的序列生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中自定义range()函数

随着自己对python的使用越来越频繁,在使用range()函数进行遍历时一直觉得range()函数只能步进整数很鸡肋,若我们需要使用小数步进时还需要导入numpy库;这就很烦了。因为自己最近刚好用到了小数步进;特此将自己改写的让range()函数贴上来,希望有用的上的同学可以使用。

def myrange(i:float,j:float,k=1)->list:    
    xlen=str((len(str(k-int(k)))-2)/10)+"f"     #根据k步长,判断format位数公式小数点位数/10+"f"
    lista = []
    if i<j:
    	while i<j:
        	lista.append(format(i, xlen))
        	i+= k
    	return list(map(lambda x:float(x), lista))
    if i>j:
    	while i>j:
        	lista.append(format(i, xlen))
        	i-= k
    	return list(map(lambda x:float(x), lista))
    A = myrange(0, 10, 0.1)
    B = myrange(10, 0, 0.1)
    #  输出测试
    print(A)
    print(B)
    # 输出结果
    [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
    [1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0]

在使用的时候需要注意的时在进行从大到小进行range的时候不需要将步进值设为负的,直接是多少就多少好了。

在写这个函数的时候大部分参考了网上的资源,由于当初使用时没有将链接记下来;在此向有关的博主们致谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值