当前位置: 首页 > article >正文

python-list-comprehension-three-way-partitioning-array-around-given-range

Python 列表理解|给定范围内数组的三向分区

原文:https://www . geesforgeks . org/python-list-understance-三路-分区-数组-围绕给定范围/

给定一个数组和一个范围**【low val,high val】,围绕该范围对数组进行划分,使数组分为三部分。
1)所有比
小的元素都是第一位的。
2)范围内的所有元素低值到高值接下来。
3)所有大于高值的元素出现在最后。
三套单个元素可以任意顺序出现。**

示例:

Input: arr = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32]  
        lowVal = 14, highVal = 20
Output: arr = [1, 5, 4, 2, 3, 1, 14, 20, 20, 54, 87, 98, 32]

Input: arr = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32]  
       lowVal = 20, highVal = 20       
Output: arr = [1, 14, 5, 4, 2, 3, 1, 20, 20, 54, 87, 98, 32] 

这个问题我们已经有了解决方案,请参考给定范围内数组的三向分区链接。我们可以使用列表理解在 python 中快速解决这个问题。方法很简单,

  1. 将列表分为三部分,第一部分包含小于 lowVal 的元素,第二部分包含介于 lowValhighVal 之间的元素,第三部分包含大于 highVal 的元素。
  2. 将所有三个部分连接在一起。
# Function for Three way partitioning of an
# array around a given range

def threeWay(input, lowVal, highVal):

# separate input list in three parts
     first = [ num for num in input if num<lowVal ]
     second = [ num for num in input if (num>=lowVal and num<=highVal) ]
     third = [ num for num in input if num>highVal ]

# concatenate all three parts
     print(first + second + third)

# Driver program
if __name__ == "__main__":
    input = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32]
    lowVal = 14
    highVal = 20
    threeWay(input, lowVal, highVal)

输出:

[1, 5, 4, 2, 3, 1, 14, 20, 20, 54, 87, 98, 32]


http://www.kler.cn/a/324598.html

相关文章:

  • skynet 源码阅读 -- 启动主流程
  • Day 15 卡玛笔记
  • 2000-2010年各省第三产业就业人数数据
  • 第14章:Python TDD应对货币类开发变化(一)
  • MYSQL学习笔记(五):单行函数(字符串、数学、日期时间、条件判断、信息、加密、进制转换函数)讲解
  • C语言——文件操作
  • iText 5 通过创建 Document 对象,并使用 PdfWriter 将内容写入 PDF 文件
  • ubuntu重新安装clickhouse
  • 前端面试题(九)
  • 【Mybatis】常见面试题汇总 共56题
  • 复试经验分享《一、问答题自测》(408、相关前沿技术)
  • 在Kali Linux VNC服务器上安装RDP服务
  • Android使用RecyclerView仿美团分类界面
  • 【JavaEE】——阻塞队列,生产消费者模型(较难)
  • BACnet协议-(基于ISO 8802-3 UDP)(2)
  • 【系统方案】智慧城市大数据平台建设方案(Word)
  • 【小程序websocket最佳实践,有心跳和断线重连】
  • JD面试题
  • huggingface实现中文文本分类
  • Gitee基本指令操作
  • 若依生成主子表
  • 前端框架:选择的艺术
  • IP地址不足
  • Python电能质量扰动信号分类(五)基于CNN-Transformer的一维信号分类模型
  • 版本发布 | IvorySQL 3.4 发版
  • 鸿蒙开发(NEXT/API 12)【硬件(获取出行业务事件信息)】车载系统