如何在Python的循环中使用附加存储值

时间:2018-10-05 14:46:08

标签: python

我正在定义一个函数(results),该函数包含一个for循环,其结果是一个随机数(a)。因此,例如,如果循环运行10次,它将生成10个不同的数字。我想将这些数字存储在循环中的列表中,然后打印以查看生成了哪些数字。

尽管我不知道该怎么做,但我想到了使用append。到目前为止,这是我的代码,尽管print语句不起作用(我收到一条错误消息,说我没有正确使用append)。

import maths

def results():
    items = []
    for _ in range(1,10):
        a = maths.numbers()
        items.append(a)
    print(items)

4 个答案:

答案 0 :(得分:1)

.append需要在列表上而不是a上被调用。 list还需要在循环外部进行初始化,以便能够append对其进行初始化。这是您方法的固定版本:

from random import random

def results():
    # First, initialize the list so that we have a place to store the random values
    items = []
    for _ in range(1,10):
        # Generate the next value
        a = random()

        # Add the new item to the end of the list
        items.append(a)

    # Return the list
    return items

Here is some more documentation中的append()方法,进一步说明了其工作原理。

还值得注意的是,range会生成从起始值到(但不包括)stop参数的值。因此,如果您打算生成10个值,则应该执行range(0, 10),因为range(1, 10)仅会给您9个值。

如果您想更进一步,可以使用list comprehension来避免完全使用append,并提供一个参数来指示想要多少个随机数:

def results(num=10):
   return [random() for _ in range(0, num)]

# produces a list of 10 random numbers (by default)
foo = results()

# produces a list of 20 random numbers
bar = results(20)

答案 1 :(得分:1)

您可以执行以下操作:

import maths

list_with_numbers=[]

def results():
    for _ in range(1,10):
        a = maths.numbers()
        list_with_numbers.append(a)
    print(list_with_numbers)

很明显,但不要忘记所有功能本身。

答案 2 :(得分:0)

append是您必须在列表上使用的一种方法,因此基本上您会这样:randomList.append(a),并且不要忘记在函数开始之前预先初始化列表: {1}}

答案 3 :(得分:0)

您有一些小错误

  • 没有maths模块
  • a是数字,而不是列表。您应该在列表上添加
  • 您调用print 之后,循环结束,而不是每次迭代都结束

    从随机导入随机

    def results():     数字= []

    for _ in range(1,10):
        a = random()
        print(a)
        numbers.append(a)
    
    return numbers