首页 > 解决方案 > 我想将随机数从它们的列表中更改为列表的最小含义

问题描述

我创建了一个“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)

标签: python

解决方案


您的程序确实会按照您的要求更改数字。我添加了一些简单print的语句来跟踪这一点:

随机导入

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:

推荐阅读