【问题标题】:Python: Random list with odds and even numbersPython:带有奇数和偶数的随机列表
【发布时间】:2020-11-03 13:08:07
【问题描述】:

python 新手。我有一个任务,我必须生成一个介于 -10 和 30 之间的随机数字列表,然后继续从列表中调用奇数和偶数。到目前为止,我已经得到了这个,但我不知道如何进行以及如何使其真正正常工作。此外,我还需要弄清楚如何从列表中检查正数和负数,但目前我只是陷入了奇数和偶数。

def Osio7(): ### function to generate 40 random numbers between -10 and 30
randomlist = random.sample(range(-10, 30), 40)
print (randomlist)

def odd_evens(): ## odds_evens function
    odds = []   
    evens = []
    for value in randomlist:
        if value % 2 == 0:
            evens.append(value)
        else:
            odds.append(value)
        print ("Even numbers: ", evens) 
        print ("Odd numbers: ", odds)
        odd_evens()
          
def positive_negatives(): ### postive_negatives function
    positives = []
    negatives = []
    for value in randomlist:
        if value >= 0:
            positives += 1
            positives.append(value)
        else:
            negatives += 1
            negatives.append(value)
        print ("Positive numbers in the list: " + positives) 
        print ("Negative numbers in the list: " + negatives) 
        positive_negatives()

【问题讨论】:

    标签: python random


    【解决方案1】:

    您可能正在寻找这样的东西:

    import random
    
    
    def Osio7():
        randomlist = random.sample(range(-10, 30), 40)
        odds = []  # Create empty lists for the odds...
        evens = []  # ... and evens
        for value in randomlist:  # Iterate over the random list
            if value % 2 == 0:  # It's even?
                evens.append(value)  # Add to the even list.
            else:  # Otherwise it's odd, so...
                odds.append(value)  # Add to the odd list.
        # (do something with `odds` and `evens`)
    

    【讨论】:

    • 感谢您的描述,对理解很有帮助!
    【解决方案2】:

    另一种选择:

    def Osio7():
        randomlist = random.sample(range(-10, 30), 40)
        evens = list(filter(lambda x: x % 2 == 0, randomlist))
        odds =  list(filter(lambda x: x % 2 == 1, randomlist))
        print(f"evens: {evens}\nodds: {odds}")
    

    【讨论】:

      【解决方案3】:
      def odd(randomlist):
          odd = []
          for v in randomlist:
              if v%2 == 1: odd.append(v)
          return odd
      

      另外,在你的方法中,你返回函数,这绝对不是你想要的

      【讨论】:

        猜你喜欢
        • 2015-06-18
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 2020-03-08
        • 1970-01-01
        • 1970-01-01
        • 2018-09-25
        相关资源
        最近更新 更多