鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 17(答题领鱼币)

  [复制链接]
发表于 2020-3-12 11:01:27 | 显示全部楼层
  1. def test17(my_list):
  2.     min_list = []
  3.     for i in range(len(my_list) - 1):
  4.         n = abs(my_list[i] - my_list[i + 1])
  5.         min_list.append(n)

  6.     min_value = min(min_list)
  7.     return min_value

  8. a = [3,15,24,33,9,19,40,54,36]

  9. print(test17(a))
复制代码



>>>9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 12:05:53 | 显示全部楼层
#求两两相差的绝对值,需要的次数为(n-1)*n/2
import random as r
def test17(my_list):
    the_list = []
    geshu=len(my_list)
    for i in range(geshu-1):
        for j in range(1+i,geshu):
            n=my_list[i]-my_list[j]
            the_list.append(abs(n))
    return min(the_list)
a = [r.randint(1,100) for i in range(5)]#在这里可改为指定的数组
print(a)
print()
print('两两之差绝对值最小的值是:%d'%test17(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 12:32:03 | 显示全部楼层
  1. def func(list):
  2.     varlist = []
  3.     for x in range(len(list)):
  4.         for y in range(len(list)):
  5.             if x == y:
  6.                 continue
  7.             else:
  8.                 varlist.append(list[x]-list[y])
  9.     for i in range(len(varlist)):
  10.         if varlist[i] <= 0:
  11.             varlist[i] = -varlist[i]
  12.     min = varlist[0]
  13.     for i in varlist:
  14.         if min >= i:
  15.             min = i
  16.     return min
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 12:37:58 | 显示全部楼层
#换个思路感觉需要的次数更少。只需要比较n-1次

import random as r
a=[r.randint(1,100)for i in range(6)]  #这里也可以换成指定的数组
print(a)
b=a[:];c=[]
b.sort(reverse=True)
for i in range(len(b)-1):
    c.append(b[i]-b[i+1])
print(min(c))

请大佬多多帮助,小可是个新手,很多都不了解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-31 13:51:14 | 显示全部楼层
import random
def min_num(array):
    num = []
    for i in range(len(array)):
        for j in range(1,len(array)):
            if array[i] != array[j]:
                num.append(abs(array[i] - array[j]))
    num.sort()
    min_result = num[0]
    print('两数之差最小值为%d' % min_result)

array = [int(i) for i in input('输入任意整数(以空格隔开): ').split(' ')]
print(array)
min_num(array)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-6 10:49:03 | 显示全部楼层
i
  1. import numpy as np
  2. def f(x):
  3.     y=[]
  4.     for i in range(len(x)):
  5.         for j in range(len(x)):
  6.             if i!=j and x[i]-x[j]>=0:
  7.                 y.append(x[i]-x[j])
  8.     y.sort()
  9.     return y[0]
  10. #例子
  11. x=[11,23,44,100]
  12. y=np.random.randint(1,100,5)
  13. print(f(x),f(y),sep='\n')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 23:27:01 | 显示全部楼层
import random
n=input("请输入数组的元素个数:")
n=int(n)
a=[]
for each in range(0,n):
    b=random.randint(0,50)
    a.append(b)
for each in range(0,n-1):
    if(each==0):
        n=a[0]-a[1]
        if(n<0):
            n=-n
    else:
        m=a[each]-a[each+1]
        if(m<0):
            m=-m
        elif(m<n):
            n=m
print(n)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-12 23:52:47 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 11:27:07 | 显示全部楼层
本帖最后由 Debugme 于 2020-4-13 11:33 编辑
  1. array = [13,15,22,56,78,71]
  2. dif = []
  3. i = 1
  4. for num1 in array:
  5.     array_temp = array[i:]
  6.     for num2 in array_temp:
  7.         temp = abs(num1 - num2)
  8.         dif.append(temp)
  9.     i += 1
  10. dif_min = min(dif)
  11. dif_max = max(dif)
  12. print("最小值是:%d,最大值是:%d"%(dif_min,dif_max))
复制代码

#萌新的答案
把最大值和最小值都算出来了
为啥你们的函数命名是foo呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 18:28:01 | 显示全部楼层
本帖最后由 尔东方 于 2020-5-1 18:30 编辑
  1. List=[1,2,3,4,5,-1]
  2. print(List)
  3. L=[]
  4. for i in range(len(List)-1):
  5.     for j in range(i+1,len(List)):
  6.         x=abs(List[i]-List[j])
  7.         L.append(x)
  8. print(min(L))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 19:20:38 | 显示全部楼层
新手·ing 发表于 2017-4-3 15:37
再多学习吧,我也是新手的

新——手——
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 08:59:52 | 显示全部楼层
string1 = input('num:')
list1 = list(string1.split(','))
m = abs(int(list1[0]) - int(list1[1]))
for i in list1:
    for j in list1:
        num1 = int(i)
        num2 = int(j)
        
        if num1 != num2 and abs(num1 - num2) < m:
            m = abs(num1 - num2)
print(m)

   
   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-17 08:30:19 | 显示全部楼层
  1. list1 = list(int(i) for i in input('请输入一组数字,用逗号隔开: ').split(','))
  2. list2 = list1
  3. list3 = []
  4. for n1 in list2:
  5.     n2 = list2.index(n1)
  6.     del list2[n2]
  7.     for n3 in list2:
  8.         list3.append(abs(n1-n3))
  9.     list2 = list1

  10. print('两两之差绝对值最小的值为:',min(list3))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-17 19:15:06 | 显示全部楼层
本帖最后由 开心果. 于 2020-5-17 19:32 编辑

def sur(list1):
    length = len(list1)
    list2 = []
    num = 0
    for i in list1:
        
        for each in range(length):
            
            if each != num:
                sur = i - list1[each]
                list2.append(sur)
        num += 1
    for each in range(len(list2)):
        if list2[each]<0:
            list2[each] = abs(list2[each])      
            
    print(list2)
    print(min(list2))

list1 = [1,2,3,3,5,7,4,8]
sur(list1)


结果如下:
[1, 2, 2, 4, 6, 3, 7, 1, 1, 1, 3, 5, 2, 6, 2, 1, 0, 2, 4, 1, 5, 2, 1, 0, 2, 4, 1, 5, 4, 3, 2, 2, 2, 1, 3, 6, 5, 4, 4, 2, 3, 1, 3, 2, 1, 1, 1, 3, 4, 7, 6, 5, 5, 3, 1, 4]
0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-17 19:35:19 | 显示全部楼层
开心果. 发表于 2020-5-17 19:15
def sur(list1):
    length = len(list1)
    list2 = []

刚没看到绝对值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 09:24:09 | 显示全部楼层
sy=[int(i) for i in input('请输入整数以","分开:').split(',')]
length=len(sy)
list1=[]
for i in range(length):
    for j in range(i+1,length):
        num=abs(sy[i]-sy[j])
        list1.append(num)
print(min(list1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 10:04:44 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-10 11:22:14 | 显示全部楼层
def number(a):   # 数组就是列表
    list1 = []
    a.sort()

    for i in range(len(a) - 1):
        result = abs(a[i] - a[i + 1])
        list1.append(result)

    print(min(list1))
   

a = [3,-23,-1,7,88]        
number(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 15:57:02 | 显示全部楼层

def foo(data):
    b=[]
    le = len(data)
    for i in range(0,le):
        b.append(data[i])
    min=abs(data[0]-b[1])
    for i in range(le):
        for j in range(le):
            if i == j:
                break
            if abs(data[i]-b[j])< min:
                min=abs(data[i]-b[j])
    return min

a=[1,50,10,100,15]
print(foo(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 17:34:36 | 显示全部楼层
啊这
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 17:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表