如何在python中输入n个列表?

时间:2017-11-09 15:38:24

标签: python python-2.7

我们如何在python中输入n个列表

例如

2
1 2 3
4 5 6 7

here 2 is specifying number of lists that are going to input

1 2 3 is one list

4 5 6 7 is second list

另一个例子

3
1 2 3
4 5 6 8
2 3 5 7

3表示将要输入3个列表

1 2 3 is list one
4 5 6 8 is list two
2 3 5 7 id list three

我已完成此代码

n=input()
for i in range(n):
    b=map(int,raw_input().split())

我对此感到震惊,我怎样才能为n个列表输入数据,我只能将一个列表放入一个我希望用于不同变量的变量

3 个答案:

答案 0 :(得分:1)

  

我想要采用不同的不同变量

您无法将输入分配给"不同的"循环中的变量,特别是如果你不知道n有多大。相反,您应该将b的不同值附加到列表列表中,例如bs

n = input()
bs = []
for i in range(n):
    bs.append(map(int, raw_input().split()))

或使用列表理解:

bs = [map(int, raw_input().split()) for _ in range(n)]

答案 1 :(得分:0)

你想阅读文件还是cli?

如果您从文件中读取,则可以逐行迭代其内容,并仅在特定行中工作。

您输入的行可以拆分以将单个数字放入列表中。

nums=[]
with open(infile.txt) as f:

 n=0
 for i, line in enumerate(f):
     if i==1:
          n == 1
     elif i <= n
         nums[i] = line.split()

答案 2 :(得分:0)

有几件事需要解决:

  1. 您需要将输入'n'转换为整数。
  2. 你的'b'会被循环的每次迭代覆盖。
  3. 为什么在第二种情况下使用'raw_input'? 'input'将为您提供一个已清理的输入版本,在这种情况下更可取(因此恶意用户无法注入代码)。
  4. 保持简单并使用列表而不是地图。

    
    n = int(input())
    rows = [] # will contain the input as a list of integers
    for i in range(n):
        row_string = input()
        row = [int(num) for num in row_string.split()]
        rows.append(row)