• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python列表与列表算法详解(2)

    1. 案例【三酷猫列表记账】

    操作需求:

    (1)用列表对象记录三酷猫每天钓鱼的种类和数量

    (2)统计三酷猫所钓水产品的总数量和预计收获金额

    (3)打印财务报表一张。

    #三酷猫列表记账
    nums = 0              #统计数量变量
    amount = 0              #统计金额数量
    i = 0                   #循环控制变量
    fish_record = ['1月1日','鲫鱼',18,10.5,'1月1日','鲤鱼',8,6.2,'1月1日','鲢鱼',7,4.7,'1月2日','草鱼',2,7.2,'1月2日','鲫鱼',3,12,'1月2日','黑鱼',6,15,'1月3日','乌龟',1,71,'1月3日','鲫鱼',1,9.8]
    print('钓鱼日期名称数量单价(元)')
    print('-'*30)
    while ilen(fish_record):
        nums = nums + fish_record[i+2]      #累计数量
        amount = amount + fish_record[i+2]*fish_record[i+3]   #累计金额
        print('%s,%s,%.2f,%.2f'%(fish_record[i],fish_record[i+1],fish_record[i+2],fish_record[i+3]))
        i += 4                  #循环控制
    print('-'*30)
    print('        总数:%d,总金额%.2f元'%(nums,amount))
    

    结果:

    2. 案例【三酷猫冒泡法排序】

    冒泡排序:通过不断调整排序元素的次序,实现集合元素从小到大的排序过程。

    ** 冒泡排序过程**

    (1)取左边第一个元素,然后与后面的元素进行比较,若发现后面的元素比第一个元素小,则交换位置,继续往后比较,一直比较调整到最后一个元素,该元素为最大的元素。

    (2)再取第一个元素,根据第一步一次比较、调整,直到倒数第二个停止;其他元素都依次循环比较、调整,每次循环多减一次,n-m(n为集合长度,m为每循环一次,增加一次,m从0 开始)。

    (3)所有元素比较、调整完毕,完成集合元素增序排序。

    冒泡法排序示意图

    fish_records = [18,8,7,2,3,6,1,1]
    i = 0                               #循环控制变量
    compare = 0                         #比较元素初始值
    fish_len = len(fish_records)        #获取列表长度
    while ifish_len:
        j = 1                           #循环控制变量
        while jfish_len-i:             #循环一遍,长度减1
            if fish_records[j-1]>fish_records[j]:   #比较前后两个元素的大小
                compare = fish_records[j-1]         #前一个大的放到临时比较变量里
                fish_records[j-1] = fish_records[j] #把小的元素放到前面
                fish_records[j] = compare           #把临时变量里的大元素放到后面
            j += 1                      #内循环控制变量+1
        i += 1                          #外循环控制变量+1
    print(fish_records)
    

    结果:

    3. 案例【三酷猫二分法查找】

    二分法查找:指在有序集合里,对集合下标范围通过取中位法获取对应的元素值,进行叠代查找比较,直至找到所需要的元素。如set1[1…N],(1…N为集合元素下标顺序值)先取一个下标中位值K1= (1+N)/2,获取set1[K1]值与查找对象M进行比较。若set1[K1]等于M,则查找成功,返回查找位置;若set1[K1]小于M,则在[K+1,N]区间里再取中位值,进行查找比较;若set1[K1]大于M,则在[1,K-1]区间里再取中位值,进行查找比较。通过不断缩小查找区间范围,可以快速获取所需要查找的值。

    fish_records = [1,1,2,3,6,7,8,18]
    low = 0                             #查找范围下界
    high = len(fish_records)-1          #查找范围上界
    find_value = 7                      #要寻找的值
    find_OK = False                     #是否找到标志,True为找到
    i = 1
    while low=high:
        middle = int((low+high)/2)       #用int取整数,避免浮点数问题的发生
        if find_value == fish_records[middle]:   #找到时
            find_OK = True                       #设置标志为True
            break
        elif find_value>fish_records[middle]:   #没有找到,要找的值范围大于中位值时
            low = middle+1                      #范围在middle+1和high之间
        elif find_valuefish_records[middle]:   #没有找到,要找的值范围小于中间值时
            high = middle-1                     #范围在low和middle-1之间
        i += 1
        if find_OK:
            print('%d在列表下标%d处,找了%d次。'%(find_value,middle,i))
        else:
            print('要找的数%d没有!找了%d次。'%(find_value,i))
    

    结果:


    代码运算示意图:

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    您可能感兴趣的文章:
    • Python编程实现蚁群算法详解
    • python二叉树常用算法总结
    • 实现用python算法计算圆周率的小诀窍
    • Python代码实现粒子群算法图文详解
    • python列表与列表算法详解
    • Python 蚁群算法详解
    上一篇:python列表与列表算法详解
    下一篇:Python类的高级函数详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python列表与列表算法详解(2) python,列表,与,算法,详解,