我希望输出像 [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20] ,[3,6,9...27,30].....[9,18,27..90]]
I would expect the output to be like [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20],[3,6,9...27,30].....[9,18,27..90]]
我正在使用 python.I 需要获得我在底部提到的输出。这是我尝试的方式。
L = [i for i in range(1,11)]
print(L)
p = []
p.extend(L for _ in range(10))
#print(p)
for _ in range(10):
for i in range(10):
p[_][i] = (_+1)*p[_][i]
print(p)
and this is the output I got.
Output:[[3628800, 7257600, 10886400, 14515200, 18144000, 21772800
25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400,
14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000],
[3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600,
29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200,
18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800,
7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400,
32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000,
21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600,
10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200,
36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800,
25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400,
14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000],
[3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600,
29030400, 32659200, 36288000]]
我希望输出像
[[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20],[3,6,9...27,30].....[9,18,27..90]]
L = [i for i in range(1,11)]
print(L)
d = []
for i in range(1, 11):
d.append([i * j for j in L])
print(d)
输出:
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [3, 6, 9, 12, 15, 18, 21, 24, 27, 30], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40], [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], [6, 12, 18, 24, 30, 36, 42, 48, 54, 60], [7, 14, 21, 28, 35, 42, 49, 56, 63, 70], [8, 16, 24, 32, 40, 48, 56, 64, 72, 80], [9, 18, 27, 36, 45, 54, 63, 72, 81, 90], [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]]
有几个问题:
不要使用 _ 作为变量名,它用于您不会重复使用的变量。
你遇到这个问题是因为这一行:
p.extend(L for _ in range(10))
p 是对 L 的引用列表。因此当您这样做时:
p[_][i] = (_+1)*p[_][i]
您修改了 L,从而修改了 p 中的所有列表。
您的代码已修复:
p = []
p.extend(list(range(1,11)) for _ in range(10))
for i in range(10):
for j in range(10):
p[i][j] = (i+1)*p[i][j]
print(p)
不过,有一种更简单的方法:
p = [ list(range(i, i*11, i )) for i in range(1,10)]
您可以使用列表理解:
new_data = [list(filter(lambda x:not x%i, range(i, (10*i)+1))) for i in range(1,10)]
输出:
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [3, 6, 9, 12, 15, 18, 21, 24, 27, 30], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40], [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], [6, 12, 18, 24, 30, 36, 42, 48, 54, 60], [7, 14, 21, 28, 35, 42, 49, 56, 63, 70], [8, 16, 24, 32, 40, 48, 56, 64, 72, 80], [9, 18, 27, 36, 45, 54, 63, 72, 81, 90]]
我正在使用 python.I 需要获得我在底部提到的输出。这是我尝试的方式。
L = [i for i in range(1,11)]
print(L)
p = []
p.extend(L for _ in range(10))
#print(p)
for _ in range(10):
for i in range(10):
p[_][i] = (_+1)*p[_][i]
print(p)
and this is the output I got.
Output:[[3628800, 7257600, 10886400, 14515200, 18144000, 21772800 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000], [3628800, 7257600, 10886400, 14515200, 18144000, 21772800, 25401600, 29030400, 32659200, 36288000]]
我希望输出像
[[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20],[3,6,9...27,30].....[9,18,27..90]]
L = [i for i in range(1,11)]
print(L)
d = []
for i in range(1, 11):
d.append([i * j for j in L])
print(d)
输出:
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [3, 6, 9, 12, 15, 18, 21, 24, 27, 30], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40], [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], [6, 12, 18, 24, 30, 36, 42, 48, 54, 60], [7, 14, 21, 28, 35, 42, 49, 56, 63, 70], [8, 16, 24, 32, 40, 48, 56, 64, 72, 80], [9, 18, 27, 36, 45, 54, 63, 72, 81, 90], [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]]
有几个问题: 不要使用 _ 作为变量名,它用于您不会重复使用的变量。
你遇到这个问题是因为这一行:
p.extend(L for _ in range(10))
p 是对 L 的引用列表。因此当您这样做时:
p[_][i] = (_+1)*p[_][i]
您修改了 L,从而修改了 p 中的所有列表。
您的代码已修复:
p = []
p.extend(list(range(1,11)) for _ in range(10))
for i in range(10):
for j in range(10):
p[i][j] = (i+1)*p[i][j]
print(p)
不过,有一种更简单的方法:
p = [ list(range(i, i*11, i )) for i in range(1,10)]
您可以使用列表理解:
new_data = [list(filter(lambda x:not x%i, range(i, (10*i)+1))) for i in range(1,10)]
输出:
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [3, 6, 9, 12, 15, 18, 21, 24, 27, 30], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40], [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], [6, 12, 18, 24, 30, 36, 42, 48, 54, 60], [7, 14, 21, 28, 35, 42, 49, 56, 63, 70], [8, 16, 24, 32, 40, 48, 56, 64, 72, 80], [9, 18, 27, 36, 45, 54, 63, 72, 81, 90]]