【问题标题】:Print an array in the range of a user input打印用户输入范围内的数组
【发布时间】:2018-04-04 16:46:43
【问题描述】:

下面是我的代码:

 n = int(input())

 for i in range(n):

    d = int(input())

    for i in range(d):
        a = list(map(int,input().split()))
    print(a)

但我希望我的代码能够做到这一点,例如: 假设d = 4 是我的用户输入 现在,我想要(随机示例)a = [1, 4 , 8, 19]。这也是来自用户输入。 这是一个输出的例子。我无法正确地提出问题。所以,这是所需的输出:

3 #n 的输入

2 #d 的输入

[4,6] #a 的输出

5 #第二次输入

[4,2,1,4,7] #输出a,5个元素为d = 5

2 #input for last d, as 'n' is 3

[1,9] #(最后一个数组a)

【问题讨论】:

  • 您的代码已经获得了一个列表作为用户输入并将其存储在a 中。有什么问题?
  • 先生,我可以展示一个我想要的输出示例吗?
  • 你现在能回答我的问题了吗?请检查所需的输出。谢谢。

标签: python arrays python-3.x for-loop


【解决方案1】:

您的代码可以简化。您似乎正在尝试结合以下两种截然不同的数据收集方法。您应该选择其中一个。

个人参赛作品

n = int(input('How many numbers?\n'))

res = []
for i in range(1, n+1):
    res.append(int(input('Enter number{0}\n'.format(i))))

同时输入

n = int(input('How many numbers?\n'))

in_str = input('Enter the numbers separated by space:\n')

res = list(map(int, in_str.split()))

【讨论】:

  • edit你的问题,不要把代码放在cmets中。
  • 对不起,我刚刚这样做了。请检查一下。
  • @GunjanPatait,不,仍然不清楚你是如何得到所有这些数字的。
  • 需要有两个for循环,并且数组必须是同时的。第一个循环运行“n”并在其中运行,第二个 for 循环运行“d”。请帮帮我。
  • 你想要的输出是什么?请更新您的问题。
【解决方案2】:

您的代码有问题

  • 您在两个 for 循环中都使用了相同的 i 变量
  • a = list(map(int,input().split())) 扫描整行,所以不需要 for 循环

解决方案

n = int(input())

for i in range(n):

    d = int(input())

    a = list(map(int,input().split()))
    print(a)

输出

2
5
1 2 3 4 5
[1, 2, 3, 4, 5]  # Output
2   
1 2
[1, 2]  # output

如果你得到你的答案,请接受它否则评论有什么问题?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2013-01-20
    • 2023-04-02
    • 2020-12-09
    相关资源
    最近更新 更多