替换列表中的最小值和最大值

时间:2018-11-20 07:15:50

标签: python list

我需要帮助来为列表编写python函数,这将做两件事。

首先,它将用数字5000(代表最大)和-5000(代表最小)替换列表中的最大和最小元素。

thelist = input("Please input a list with numbers: ")
mylist = list(map(int, thelist.split()))

请输入数字列表:1 2 3 4 5 6 7 8 9 10

print(mylist)

结果:[1、2、3、4、5、6、7、8、9、10]

老实说,我不知道如何使用py函数用数字5000和-5000替换数字1和10。我可以获得最小值和最大值,但是替换它们是我不知道的方法。

5 个答案:

答案 0 :(得分:2)

在使用列表理解的简短格式中,您可以使用

/etc/dhcp/dhclient.conf

它将最小元素替换为-5000,将最大元素替换为5000。f有几个最小值,所有这些最小值都将被替换。您可以使用函数使用-5000、5000以外的其他值。

答案 1 :(得分:1)

您可以使用mylist[0] = -5000mylist[-1] = 5000

负索引从列表的右侧开始计数

或者您的列表很混乱

尝试一下

min_pos = mylist.index(min(mylist))
max_pos = mylist.index(max(mylist))

mylist[min_pos] = -5000
mylist[max_pos] = 5000

print(mylist)

希望这能回答您的问题

答案 2 :(得分:0)

这可以通过最小/最大两个阶段来完成:

arr = [1,2,3,4]
arr[arr.index(max(arr))] = 5000

这将产生:

  

[1、2、3、5000]

这里的两个阶段是:

  1. 找到最大值:max(arr)。在此示例中,该值为4。
  2. 找到最大值的索引:arr.index(4)。在此示例中,索引将为3。

这两个阶段导致在最大值单元格的索引处进行赋值。请注意,这假设一个唯一的最大值。

答案 3 :(得分:0)

mylist[mylist.index(min(mylist))] = -5000
mylist[mylist.index(max(mylist))] = 5000

答案 4 :(得分:0)

您可以具有以下功能:

In [361]: def replace_vals(l):
     ...:     min_index = l.index(min(l))  # min(l) finds minimum of list. 'l.index()' finds the index of a given value.
     ...:     max_index = l.index(max(l))  # max(l) finds maximum of list.
     ...:     l[min_index] = -5000 # Just replace min_index found above by -5000
     ...:     l[max_index] = 5000  # Just replace max_index found above by 5000
     ...:     
In [355]: lst=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

In [362]: replace_vals(lst)

In [363]: lst
Out[363]: [-5000, 2, 3, 4, 5, 6, 7, 8, 9, 5000]
相关问题