Python 在一个嵌套中调用多个列表
0:24不起作用,我不想对1-25个列表重复这一行。也许有一种简单的方法可以做到这一点,但我一直没有找到任何方法。我一次只能访问列表的一部分 看起来您正在尝试创建一个0到100(含)之间的随机整数列表。您可以更轻松地理解以下内容:Python 在一个嵌套中调用多个列表,python,list,Python,List,0:24不起作用,我不想对1-25个列表重复这一行。也许有一种简单的方法可以做到这一点,但我一直没有找到任何方法。我一次只能访问列表的一部分 看起来您正在尝试创建一个0到100(含)之间的随机整数列表。您可以更轻松地理解以下内容: import random numlist = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[],[]] for i in range(0, 7): n
import random
numlist = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],[],[],[]]
for i in range(0, 7):
numlist[0:24].append(random.randint(0,100))
print(numlist)
如果您有可用的numpy,则有更好的选择:
>>> [[random.randint(0, 100) for col in range(7)] for row in range(24)]
[[73, 21, 8, 89, 90, 63, 34],
[29, 8, 76, 78, 74, 30, 59],
[50, 96, 68, 88, 94, 85, 100],
[37, 1, 28, 55, 70, 65, 65],
[89, 2, 25, 100, 54, 63, 57],
[48, 28, 43, 35, 9, 2, 37],
[14, 14, 51, 30, 52, 43, 46],
[81, 52, 41, 94, 8, 48, 50],
[72, 12, 100, 27, 17, 19, 62],
[46, 3, 71, 12, 21, 23, 42],
[34, 1, 36, 100, 95, 0, 37],
[99, 58, 21, 72, 4, 55, 85],
[45, 30, 60, 94, 25, 14, 36],
[19, 91, 68, 82, 89, 61, 47],
[10, 10, 82, 77, 27, 61, 14],
[60, 6, 6, 58, 17, 8, 46],
[16, 42, 100, 10, 4, 15, 81],
[9, 73, 28, 11, 54, 4, 46],
[11, 75, 56, 93, 61, 15, 84],
[22, 88, 0, 2, 76, 59, 56],
[6, 75, 99, 35, 44, 65, 28],
[89, 67, 60, 84, 44, 20, 30],
[24, 71, 97, 5, 4, 49, 9],
[7, 73, 77, 21, 50, 62, 52]]
这将与随机列表一起工作,从而满足您的需求
>>> import numpy as np
>>> np.random.randint(low=0, high=101, size=(24,7)).tolist()
[[96, 27, 39, 21, 39, 67, 56],
[87, 77, 59, 93, 8, 2, 12],
[28, 86, 80, 27, 95, 94, 55],
[0, 85, 99, 94, 5, 30, 36],
[90, 22, 12, 12, 95, 1, 24],
[37, 52, 72, 27, 62, 13, 92],
[51, 55, 78, 7, 33, 33, 94],
[53, 88, 19, 11, 8, 66, 45],
[14, 18, 72, 64, 26, 32, 41],
[81, 79, 32, 65, 76, 25, 74],
[1, 4, 89, 25, 13, 24, 55],
[13, 95, 52, 95, 18, 78, 69],
[95, 40, 71, 69, 13, 78, 48],
[69, 98, 85, 64, 0, 97, 61],
[53, 81, 64, 3, 2, 0, 78],
[75, 79, 50, 69, 60, 32, 24],
[60, 33, 45, 36, 99, 11, 16],
[25, 13, 97, 47, 33, 53, 46],
[6, 94, 53, 52, 55, 12, 30],
[5, 24, 92, 90, 31, 4, 26],
[1, 42, 89, 44, 86, 83, 1],
[31, 52, 53, 19, 38, 52, 5],
[47, 18, 14, 31, 49, 70, 69],
[66, 9, 2, 10, 24, 24, 1]]
正如在其他答案中提到的,列表理解肯定是解决问题的方法,但我想我应该澄清一下您最初尝试的一些问题:
yourlist = []
randomlist = []
for i in range(amount of lists):
for numb in range(amout of random numbers):
yourlist.append(random.randint(0,100))
randomlist.append(yourlist)
yourlist = []
numlist[0:24]
所做的是返回一个列表,该列表是从索引0到索引23的numlist
的副本(包括第一个值,但不包括第二个值)。然后,.append
正在处理此新副本,将一个随机整数添加到新数组中,该数组现在如下所示:
numlist = [[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],
[],[],[]]
for i in range(0, 7):
numlist[0:24].append(random.randint(0,100))
然后这个新副本没有分配给任何变量,所以它只是被丢弃了,这在循环的每次运行中都会发生
要将函数实际应用于集合中的每个值,您需要执行以下操作:
[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[], [],
[],[],[],14]
map
函数将依次调用传递给列表中每个元素的函数,在这种情况下,访问内部列表并向每个元素追加一个值。这个问题非常不清楚。这是什么语言?列表
标记没有帮助,因为它适用于许多语言。这很有效。我怎样才能回电话呢?我需要调用它们来找到它们的平均值/中位数/模式,然后用它乘以各个数字。我的答案可以让你调用存储在变量中的行,这样你就可以找到平均中位数和模式。
def append_random_num(lst):
lst.append(random.randint(0,100))
for i in range(7):
map(append_random_num, numlist)