Python 我想把随机数从列表中改为最小意义的列表

Python 我想把随机数从列表中改为最小意义的列表,python,Python,我创建了一个“a”随机数列表。然后我需要将奇数改为列表中的最小数。但它不会改变任何数字,怎么了 import random a = int(input('Num -> ')) s = [] for i in range(a): s.append(random.randint(0,10)) if s[i]%2!=0: s[i]=min(s) 您的程序确实会根据您的要求更改数字。我添加了一些琐碎的打印语句来跟踪这一点: 随机输入 a = 10 s = []

我创建了一个“a”随机数列表。然后我需要将奇数改为列表中的最小数。但它不会改变任何数字,怎么了

import random

a = int(input('Num -> '))
s = []
for i in range(a):
    s.append(random.randint(0,10))
    if s[i]%2!=0:
        s[i]=min(s)

您的程序确实会根据您的要求更改数字。我添加了一些琐碎的打印语句来跟踪这一点:

随机输入

a = 10
s = []
for i in range(a):
    s.append(random.randint(0,10))
    if s[i]%2==0:
        print("Changing", i)
        print("\tbefore", s)
        s[i]=min(s)
        print("\t after", s)
输出:

Changing 1
    before [3, 10]
     after [3, 3]
Changing 6
    before [3, 3, 5, 9, 9, 1, 8]
     after [3, 3, 5, 9, 9, 1, 1]
Changing 7
    before [3, 3, 5, 9, 9, 1, 1, 6]
     after [3, 3, 5, 9, 9, 1, 1, 1]
Changing 8
    before [3, 3, 5, 9, 9, 1, 1, 1, 6]
     after [3, 3, 5, 9, 9, 1, 1, 1, 1]
Changing 9
    before [3, 3, 5, 9, 9, 1, 1, 1, 1, 0]
     after [3, 3, 5, 9, 9, 1, 1, 1, 1, 0]
如您所见,偶数确实会被替换为最小列表。你声称它不会改变任何数字是不正确的

如果要更改奇数,则需要将支票反转:

if s[i]%2 == 1:
如果s[i]%2==0,则更改为如果s[i]%2=0来选择奇数。第一种方法将改变偶数

import random

a = int(input('Num -> '))

# creates your list of x random numbers
s = []
for i in range(a):
    s.append(random.randint(0,10))


# change odd numbers to the min of the original list    
for i in range(a):    
    if s[i]%2!=0:
        s[i]=min(s)
假设a是10:

>>> [2, 2, 8, 1, 2, 2, 10, 7, 5, 7]
现在将所有奇数改为min,在这种情况下为“1”

>>> [2, 2, 8, 1, 2, 2, 10, 1, 1, 1]

下面的答案也很有效,只是您需要在每次创建列表后更改它,还是先创建列表,然后应用您的规则。

请您重申您的问题好吗?至少对我来说,你想要什么还不清楚。我不确定你想要什么作为你的输出。但当我使用调试器运行它时,它确实会将当前值/数字更改为列表s中特定时刻的最小值。我创建了一个“a”随机数列表。然后我需要将奇数改为这个列表的最小数,你需要分开你的循环。此外,您的代码正在更改偶数YOO旨在创建第二个循环以将奇数更改为min?此代码不起作用,我有了下一个输出:在[9,4]之后更改1在[9,4,3,10]之前更改3在[9,4,3,3]之后更改5在[9,4,3,5,4]之后更改6在[9,4,3,3,5,5,3]之后更改6在[9,4,3,3,3,3,8]之前更改[9,4,3,3,5,3,3]在[9,4,3,3,3,5,3,3,3,6]之后[9,4,3,3,3,3,3]在[9,4,3,3,3,5,3,3,3,3,9,4]之前更改7您需要指定失败的方式。根据您的帖子,这会将列表中的每个奇数替换为该点之前的最小列表数。您评论中的输出确实以这种方式运行。如果您需要其他内容,则需要在帖子中指定。