鱼C论坛

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

[技术交流] Python:每日一题 12

  [复制链接]
发表于 2018-11-16 18:50:06 | 显示全部楼层
????????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-22 21:46:38 | 显示全部楼层
def inp(number):
    for i in range(9):
        number.append(int(input("请输入数字:")))
def max_min(array):
    max = min = 0
    for i in range(0,len(array)):
        if array[i]>array[max]:
            max = i
        elif array[i]<array[min]:
            min = i
    array[0],array[max] = array[max],array[0]
    array[len(array)-1],array[min] = array[min],array[len(array)-1]
def outp(numbers):
    for i in range(len(numbers)):
        print(numbers[i])
    
if __name__ == "__main__":
    array = []
    inp(array)
    max_min(array)
    outp(array)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 18:06:41 | 显示全部楼层
a = input('请输入一组数组(用,号隔开): ').split(',')
b = [int(i) for i in a ]
num_max = max(b)
b[b.index(num_max)],b[0] = b[0],num_max
num_min = min(b)
b[b.index(num_min)],b[-1] = b[-1],num_min
print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 23:58:48 | 显示全部楼层
print("----------习题12---------")

a = input("请输入多个整数以逗号.隔开:").split('.')
list(a)
x = [];
for n in a:
  x.append(int(n));
b = []
b.append(max(x))
b.append(min(x))
x[x.index(max(x))]=x[0]
x[x.index(min(x))]=x[-1]
x[0]=max(b)
x[-1]=min(b)
print("新的数组是:",x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-3 15:08:50 | 显示全部楼层
kankan
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-28 16:45:38 | 显示全部楼层
a=[1,2,3,5436,4,5,6,7,8,0,452,542,54]

b =sorted(a)
for k,v in enumerate(a):
    if b[-1] == a[k]:
        s = a[0]
        h = a[k]
        a[0]=h
        a[k]=s
    if b[0] == a[k]:
        j = a[-1]
        m = a[k]
        a[-1],a[k]=m,j

print(a)
虽然很low,但是应该可以实现。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:37:39 | 显示全部楼层
s = input("输入数组:")
li = list(s)
oldli = li.copy()
li.sort()
s = 0
b = 0

for i in range(len(li)):
    if oldli[i] == li[0]:
        s = i
    if oldli[i] == li[-1]:
        b = i
print(s,b,len(li) - 1)
if b != (len(li) - 1) and s != 0:
    oldli[s] = oldli[-1]
    oldli[b] = oldli[0]

elif b == len(li) - 1:
    oldli[s] = oldli[0]
    
elif s == 0:
    oldli[b] = oldli[-1]

oldli[0] = li[-1]
oldli[-1] = li[0]
print(oldli)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 09:49:43 | 显示全部楼层
冬雪雪冬 发表于 2017-3-30 19:24
没有想到更好的写法。

这里有个问题,假如最小的就是第一个,最大的就是最后一个,那么结果将不会有任何变化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 09:53:32 | 显示全部楼层
题主,我想知道,假如原来的数组,第一个就是最小值,第二个就是最大值,【12,35,21,13,45】 ,那么按照题目,输出结果应该是怎样的?【45,35,21,13,12】?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 10:07:09 | 显示全部楼层
注意逻辑:
arr = [x for x in input("输入一组数字,用空格隔开:").split(" ")]
print("原来的数组:", arr)

max_index = arr.index(max(arr))
arr[0], arr[max_index] = arr[max_index], arr[0]

min_index = arr.index(min(arr))
arr[-1], arr[min_index] = arr[min_index], arr[-1]

print("修改后的数组:", arr)

不要写成:
arr = [x for x in input("输入一组数字,用空格隔开:").split(" ")]
print("原来的数组:", arr)

max_index = arr.index(max(arr))
min_index = arr.index(min(arr))

arr[0], arr[max_index] = arr[max_index], arr[0]
arr[-1], arr[min_index] = arr[min_index], arr[-1]

print("修改后的数组:", arr)

这两个在面对数组【1,2,3,4,5】时,结果会不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 16:13:51 | 显示全部楼层
arr = [5, 2, 8, 9, 3, 4]
maxi = arr.index(max(arr))
mini = arr.index(min(arr))
arr[0], arr[maxi],arr[-1], arr[mini] = arr[maxi], arr[0],arr[mini], arr[-1]
print(arr)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 12:52:03 | 显示全部楼层
num_out=[]
while(True):
    str_in=input("请输入一个数字作为数组成员(以回车键结束输入:)")
    if str_in=='':
        break
    elif str_in.isalnum():
        num_out.append(int(str_in))
    else:
        print("无效字符,请重新输入")
temp=max(num_out)
index_max=num_out.index(max(num_out))
num_out[index_max]=num_out[0]
num_out[0]=temp
temp=min(num_out)
index_min=num_out.index(min(num_out))
num_out[index_min]=num_out[-1]
num_out[-1]=temp

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

使用道具 举报

发表于 2019-4-27 19:54:36 | 显示全部楼层
import random

l1 = [random.randint(1, 100) for i in range(10)]
print(l1)

if l1[0] != max(l1):
    t = max(l1)
    l1.remove(max(l1))
    l1.insert(0, t)

if l1[-1] != min(l1):
    t1 = min(l1)
    l1.remove(min(l1))
    l1.append(t1)
print(l1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-27 22:41:19 From FishC Mobile | 显示全部楼层
谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-7 21:49:20 | 显示全部楼层
a = [1,5,8,9,6,3,7,45,98,32,15,79]
ma = max(a)
mi = min(a)
a[a.index(ma)] =a[0]
a[0] = ma
a[a.index(mi)] =a[-1]
a[-1] = mi

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

使用道具 举报

发表于 2019-8-3 14:08:13 | 显示全部楼层
import random
list1 = [random.randint(1,100) for i in range(10)]
print(list1)
max = list1[0]
min = list1[0]
for i in range(len(list1)):
    if list1[i] > max:
        max = list1[i]
    else:
        continue
print('最大值是{}'.format(max))

for i in range(len(list1)):
    if list1[i] < min:
        min = list1[i]
    else:
        continue
print('最小值是{}'.format(min))

list1[list1.index(max)] = list1[0]
list1[0] = max
print(list1)

list1[list1.index(min)] = list1[-1]
list1[-1] = min
print(list1)

[92, 50, 48, 62, 42, 53, 98, 23, 4, 69]
[98, 50, 48, 62, 42, 53, 92, 23, 69, 4]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-11 11:11:45 | 显示全部楼层
# 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
import random as r

def answer1(list):
    m = max(list)
    n = min(list)
    list[list.index(n)], list[-1] = list[-1], n
    list[list.index(m)], list[0] = list[0], m
    print(list)

if __name__ == '__main__':
    list1 = []
    for i in range(10):
        i = r.randint(1, 100)
        list1.append(i)              #生成含10个(1-100)随机数列表
    print(list1)

    answer1(list1[:])                #传入列表切片进行数据处理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-13 14:58:40 | 显示全部楼层
sjhfdasifdhasifhiaih
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 17:47:52 | 显示全部楼层
交作业~
def find_max(num):
          length = len(num)
          max1 = num[0]
          for each in range(length-1):
                    if max1 < num[each]:
                              max1 = num[each]
          return max1

def find_min(num):
          length = len(num)
          min1 = num[0]
          for each in range(length-1):
                    if min1 < num[each]:
                              min1 = num[each]
          return min1




def main():
          num= []
          i = 1
          x = int(input('请输入数组的个数:'))
          while i <=x:
                    temp = int(input('请你输入第%d个数字:'%i) )
                    num.append(temp)
                    i += 1
          for each in range(len(num)):
                    if find_max(num) == num[each]:
                              break
          for each2 in range(len(num)):
                    if find_min(num) == num[each]:
                              break
          length = len(num)
          num[each],num[0] = num[0],num[each]
          num[each2],num[length-1]= num[length-1],num[each2]
          print(num)
if __name__ =='__main__':
          main()
          

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

使用道具 举报

发表于 2019-9-7 21:46:56 | 显示全部楼层
def change(a):
    for i in range(0,len(a)-1):
        if a[i] >= a[i+1]:
            a[0],a[i] = a[i],a[0]
        else:
            a[0],a[i+1] = a[i+1],a[0]
        if a[i] <= a[i+1]:
            a[len(a)-1],a[i] = a[i],a[len(a)-1]
        else:
            a[len(a)-1],a[i+1] = a[i+1],a[len(a)-1]
    print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 08:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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