首页 > 编程语言 >Python寻找给定序列中相差最小的两个数字

Python寻找给定序列中相差最小的两个数字

时间:2023-06-09 21:07:40浏览次数:53  
标签:元素 相差 seq Python dif random print 给定 序列

import random
def getTwoClosestElements(seq):
    #先进行排序,使得相邻元素最接近
    #相差最小的元素必然相邻
    seq = sorted(seq)
    #无穷大
    dif = float('inf')
    #遍历所有元素,两两比较,比较相邻元素的差值
    #使用选择法寻找相差最小的两个元素
    for i,v in enumerate(seq[:-1]):
        d = abs(v - seq[i+1])
        if d < dif:
            first, second, dif = v, seq[i+1], d
    #返回相差最小的两个元素
    return (first, second)seq = [random.random() for i in range(20)]
print(seq)
print(sorted(seq))
print(getTwoClosestElements(seq))

标签:元素,相差,seq,Python,dif,random,print,给定,序列
From: https://blog.51cto.com/u_9653244/6451053

相关文章

  • Python使用tkinter的Treeview组件实现表格功能
    fromtkinterimportTk,Scrollbar,Framefromtkinter.ttkimportTreeview#创建tkinter应用程序窗口root=Tk()#设置窗口大小和位置root.geometry('500x300+400+300')#不允许改变窗口大小root.resizable(False,False)#设置窗口标题root.title('通信录管理系统')#使......
  • Python调用安卓手机相机接口进行拍照
    感兴趣的朋友可以查阅sl4a模块的详细资料,实现更多功能。下面的代码需要在安卓手机上安装QPython3,然后打开QEdit,把代码复制粘贴过去,保存文件,然后运行就可以自动打开相机了。importsl4aimportosdroid=sl4a.Android()#默认保存到手机存储卡的根目录下,也可以自己修改成其他目录......
  • Python把列表中的数字尽量等分成n份
    问题描述:假设一个列表中含有若干整数,现在要求将其分成n个子列表,并使得各个子列表中的整数之和尽可能接近。下面的代码并没有使用算法,而是直接将原始列表分成n个子列表,然后再不断地调整各个子列表中的数字,从元素之和最大的子列表中拿出最小的元素放到元素之核最小的子列表中,重复这个......
  • Python中enumerate对象的用法与特点
    Python的内置函数enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组。#枚举字符串中的元素>>>list(enumerate('abcd'))[(0,'a'),(1,'b'),(2,'c'),(3,'d')]#枚举列表中的元素>>>list(enumerate([�......
  • Python从命令行参数和配置文件获取信息
    实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。sys模块的argv是一个包......
  • Python查找任意字符串中只出现一次的字符(2016奇虎笔试题)
    '''  程序功能:  编写函数,给定任意字符串,找出其中只出现一次的字符,  如果有多个这样的字符,就全部找出。'''importsysdefsearchOne(s):#创建空字典d=dict()#遍历字符串,并分别记录每个字符的出现次数forchins:#这里重点演示字典的ge......
  • 小议Python列表和元组中的元素地址连续性
    众所周知,在Python中字典和集合依赖元素哈希表来存储,并不存在传统意义上的所谓元素“顺序”,当然,如果需要一个有序的字典可以使用collections模块提供的OrderedDict类。在Python中,列表和元组属于有序序列,支持下标随机访问,也支持切片操作。当然,列表是可变序列而元组属于不可变序列,这一......
  • Python实现倒计时按钮
    很多网站会在注册或交易后给出一个许可协议或提醒信息,一般页面上会有个按钮,但是这个按钮是倒计时的,在倒计时结束之前是禁用的。本文使用tkinter模拟了这样的倒计时按钮。importtkinterimporttimeimportthreading#创建应用程序窗口,设置标题和大小root=tkinter.Tk()root.tit......
  • Python组合列表中多个整数得到最小整数(一个算法的巧妙实现)
    '''程序功能:  给定一个含有多个整数的列表,将这些整数任意组合和连接,  返回能得到的最小值。  代码思路:  将这些整数变为相同长度(按最大的进行统一),短的右侧使用个位数补齐  然后将这些新的数字升序排列,将低位补齐的数字删掉,  把剩下的数字连接起来,即可得到满足要......
  • Python中提供的各种队列结构
    Python标准库queue提供了LILO队列类Queue、LIFO队列类LifoQueue、优先级队列类PriorityQueue,标准库collections提供了双端队列。例如:>>>fromqueueimportQueue#LILO队列>>>q=Queue()#创建队列对象>>>q.put(0)#在队列尾部插入元素>>>q.put(1)>>>q.put(2)>&......