【问题标题】:How to get the same output example in Python?如何在 Python 中获得相同的输出示例?
【发布时间】:2019-12-06 03:50:57
【问题描述】:

我是一名尝试学习列表和数组的初学者,尤其是维度列表。我真的在为如何为输出示例中显示的列表编写代码而苦苦挣扎。我希望能得到一些帮助,让我朝着正确的方向前进。

以下是我希望列表的外观示例

# If I put in 4 as a example, the result will be this:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8, 12, 16]]

0 0 0 0 0
0 1 2 3 4
0 2 4 6 8
0 3 6 9 12
0 4 8 12 16

我的代码如下:

def myNumber():
   chooseNumber=int(input("\nPlease enter a number between [1, 12]: "))
   while not (chooseNumber >= 1 and chooseNumber <= 12):
      print("That number is not between [1, 12], try again.")
      chooseNumber=int(input("Please enter a number between [1, 12]: "))
   print("Your number is:", chooseNumber)
myNumber()

#---- the code below I am struggling with here ----#

n = 4
[[i*j for i in range(n+2)] for j in range (n+2)]

# x = [ [1,3],[2,4] ]

print([[i*j for i in range(n+2)] for j in range (n+2)])

【问题讨论】:

  • 你到底在纠结什么?您是否收到错误或意外结果?
  • @user1558604 不,我正在努力解决如何以与我展示的示例相同的方式正确处理列表
  • 你为什么用n+2而不是n+1
  • @user1558604 就像我说的我是初学者,所以我对这类东西知之甚少
  • for row in xyz: print row 其中xyz 是您的列表理解。这将在每一行上打印一个列表。如果你不想要括号,那么for row in a: print(" ".join((map(str, row)))) 这看起来有点复杂,但我会分解它。 " ".join(*iterable*) 接受一个(字符串的)可迭代对象并形成一个字符串,其中每个可迭代对象的值之间有一个空格。 map(str,row) 部分将row 列表中的所有int 值一次全部转换为字符串。这是join 函数所必需的(因为它需要可迭代的字符串)。

标签: python arrays python-3.x list sorting


【解决方案1】:

如果我理解正确,这里是如何产生你想要的输出:

n = 4

lists = [[i*j for i in range(n+1)] for j in range(n+1)]
outstr = ''
for i in lists:
    for n in i:
        outstr += str(n) + " "
    outstr += "\n"

print(outstr)

输出:

0 0 0 0 0 
0 1 2 3 4 
0 2 4 6 8 
0 3 6 9 12 
0 4 8 12 16 

如果这有帮助,请告诉我!

【讨论】:

  • 非常感谢,您确实理解正确,这就是我想要的!我从来不知道如何正确地做这些,所以再次感谢你救了我。
猜你喜欢
  • 2017-10-03
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 2022-11-10
  • 1970-01-01
  • 2014-01-11
相关资源
最近更新 更多