python升序数判断

这可能有助于:A=[10,9,8,3,1,0]

B=[1,9,18,33,41,50]

C=[1, 1, 1, 1, 1]

D= [1]

E=[1, 2, 3, 2, 1]

F =[]

def order(someList):

asc = True

desc = True

for idx in range(1, len(someList)):

if someList[idx] - someList[idx - 1] >= 0:

asc = asc & True

desc = desc & False

else:

desc = desc & True

asc = asc & False

if asc and not desc:

return 'list is in ascending order'

elif desc and not asc:

return 'list is in descending order'

else:

return 'list is in no order'

print(order(A))

print(order(B))

print(order(C))

print(order(D))

print(order(E))

print(order(F))

执行时,此代码的输出为:list is in descending order

list is in ascending order

list is in ascending order

list is in no order

list is in no order

list is in no order

这里我们要做的是维护两个布尔标志asc和desc,这两个标志将表示传递的列表是按升序还是降序排列。

然后,对于列表中的每一对连续数字,我们计算它们的差if someList[idx] - someList[idx - 1] >= 0:,然后使用False和desc标记,反之亦然。

直观地说,在这段代码中所做的工作如下:

如果一个序列是按升序排列的,那么每一个连续的数字对之间的差值将大于零,例如:考虑这个序列[a, b, c, d, e, f],其中所有字符都表示数字,假设这个序列是升序的,即a <= b <= c <= d <= e <= f,如果我们考虑所有连续的数字对,即(a, b), (b, c), (c, d), and so on..,并计算每一对的差,即b-a, c-b, d-c and so on..,然后every difference will be >= 0,即b-a >= 0 and c-b >= 0 and d-c >= 0 and e-d >= 0 and f-e >= 0,这是由上面代码中的asc布尔标志表示。对于desc布尔标志也有类似的解释。

如果您希望在使用for循环时使用上述代码的较小版本,请使用:A=[10,9,8,3,1,0]

B=[1,9,18,33,41,50]

C=[1, 1, 1, 1, 1]

D= [1]

E=[1, 2, 3, 2, 1]

F = []

def order(someList):

results = [True if second >= first else False for first, second in zip(someList, someList[1:])]

if any(results) and all(results):

return 'ascending order'

elif not any(results) and not all(results):

return 'descending order'

else:

return 'no order'

print(order(A))

print(order(B))

print(order(C))

print(order(D))

print(order(E))

print(order(F))

以及输出descending order

ascending order

ascending order

no order

no order

no order

(0)

相关推荐

  • Sqlite—查询语句(Select)

    基本语法如下 sqlite> select * from tb_user;sqlite> select userid,username from tb_user; 格式化的查询输出 sql ...

  • sql server查询(SELECT ,where,distinct,like 查询,in,is null,group by 和having,order by,as)

    基本查询: 实例表 1 示例表 2 --部门表 3 4 create table dept( 5 6 deptno int primary key,--部门编号 7 8 dname nvarchar( ...

  • ECSHOP商品分类列表按商品商家备注排序

    打开 includes/lib_goods.php 这个文件 搜索 ORDER BY g.sort_order, g.last_update DESC 替换为: ORDER BY g.seller_n ...

  • Python|递归法判断平衡二叉树

    问题描述给定一个二叉树,判断它是否是高度平衡的二叉树.本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 输入:root = [3, 9, 20, nu ...

  • 太乙神数判断技巧步骤及心法

    国际易学联合会世界经济国际战略专业委员会会长 鲁扬才 摘自鲁扬才著<太乙神数预测绝学>(1998年出版) 太乙神数以特定的时空五行能量积累,形成一系列有各自循回周期且相互因导.相互制衡的星 ...

  • Python|如何判断丑数

    问题描述编写一个程序判断给定的整数是否为丑数.丑数就是只包含质因数 2,3, 5 的正整数.说明:(1)1是丑数.(2)输入不会超过 32 位有符号整数的范围: [-2³¹,  2³¹-1].解决方案 ...

  • Python|判断一个5位数是不是回文数

    问题描述题目描述:一个5位数,判断它是不是回文数.让我们一起来解决这个题目吧!首先,回文数的概念:指这个数反向排序与原顺序相同并且该数字都是同一个数字的数值.在了解回文数的概念后,在python语言中 ...

  • Python|利用递归轻松解决数的乘方问题

    问题描述求一个数的乘方,数学公式如下是成立的示例: 我们可以将乘方的运算转换为乘法的运算输入: ,定义 ,b=y/2输出: 解决方案求x的y次方的值,当y是偶数时,最后能转换成两个数相乘,当y是奇数时 ...

  • 如何判断电线电缆的平方数是否达标?电线电缆的平方数计算方法

    来源:线缆技术 如有侵权,请联系删除 电线几平方是国家标准规定的的一个标称值,电线的平方实际上标的是电线的横截面积,即电线圆形横截面的面积,单位为平方毫米.是用户根据电线电缆的负荷来选择电线电缆.那电 ...

  • Python | 动态规划解决“返回第n个丑数”

    问题描述给你一个整数 n ,请你找出并返回第 n 个 丑数 .丑数 就是只包含质因数 2.3 和/或 5 的正整数.示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8 ...

  • python判断某一天是一年中的第几天

    # F1 dat = input('请输入某年某月某日,格式为yyyy-mm-dd: ') y = int(dat[0:4]) # 获取年费 m= int(dat[5:7]) # 获取月份 d = i ...

  • 【干货】江湖老刘教你如何判断公众号阅读数真假?

    近年来,随着以公众号为代表的自媒体火热,微信的流量主和广告主也成为新媒体从业者争相开通的对象,粉丝的数量直接是与运营者的利益挂钩.很多的原创型自媒体和营销型自媒体乘势大发了一把,看着阅读数和粉丝量就可 ...