zoukankan      html  css  js  c++  java
  • 写一个函数实现如下功能: 1)输入数组:[0,1,2,3,5,6,8] ==> 输出数组:[“0->3”,”5->6”,”8”] 2)输入数组:[1,2,4,5,6,7,9]==> 输出数组:['1->2','4->7','9']

    练习题:

    1.写一个函数实现如下功能:

    1)输入数组:[0,1,2,3,5,6,8] ==>

    输出数组:[“0->3”,”5->6”,”8”]

    2)输入数组:[1,2,4,5,6,7,9]==>

    输出数组:['1->2','4->7','9']

    分析:

           1.连续数字输出为n->m

           2.需要考虑列表中所有数字都为连续数字

           3.列表中最后一个数字为单数

      4.列表中两个连续相同的数字

    def getSerialize(list):
        list2 = []   #定义一个空列表,用于存放返回数据
        num1 = list[0]   #定义一个变量,默认为list的第一个数
        num2 = 0
        for i in range(1,len(list)):  #遍历列表
            print((list[i]-list[i-1]))
            if list[i]-list[i-1] != 1:   #判断数字是否为连续数
                
                num2 = list[i-1]         #如果不是连续数,将list[i-1] 赋值给num2
                
                if num2 != num1:        #判断num1与num2是否相等
                    str1 = str(num1) + '->' +str(num2)    #如果不相等则将'num1->num2'赋值给str1
                    list2.append(str1)        #添加str1到list2中
                    num1 = list[i]
                else:
                    str1 = str(list[i-1])    #如果num1与num2相等,则说明list[i-1]为单数
                    list2.append(str1)     
                    num1 = list[i]
                if i == len(list)-1:     #判断i是否为列表的最后一个脚标,如果是并且list[i]为单数则str1=list[i]
                    str1 = str(list[i])  
                    list2.append(str1)
        else:
            if num1 != list[len(list)-1]:  #判断num1是否与list中的最后一个数相等,如果不相等则输出'num1->list[len(list)-1]'
                str1=str(num1) + '->' + str(list[len(list)-1])
                list2.append(str1)
        return list2

    PS.小白一枚,如有不对之处,欢迎指正^-^

  • 相关阅读:
    bat 命令如何启动远程PC上的一个程序
    Python的内置list类
    Python3的列表推导式
    python3修改Excel中固定单元格的内容
    python3“腌制”数据
    python3用print写数据到文件中
    github在线预览项目(html)
    github简单上手
    事件DOMContentLoaded和load的区别
    jquery 一些事件
  • 原文地址:https://www.cnblogs.com/muzii/p/14085638.html
Copyright © 2011-2022 走看看