当前位置: 首页 > 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

相关文章:

  • 《Java核心技术 卷I》用户界面AWT事件继承层次
  • 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)
  • [JAVA]有关MyBatis环境配置介绍
  • vue 获取摄像头拍照,并旋转、裁剪生成新的图片
  • 探索IDE的无限可能:使用技巧与插件推荐
  • CSS基础知识04
  • 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)【硬件(获取出行业务事件信息)】车载系统