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

如何在python中输入n个列表?,python,python-2.7,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 我已经完

如何在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个列表输入呢?我只能把一个列表输入一个变量,我想输入不同的变量

我想考虑不同的变量

您不能将输入分配给循环中的“不同”变量,特别是如果您不知道
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)]

您想从文件还是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()
nums=[]
将open(infle.txt)作为f:
n=0
对于i,枚举(f)中的行:
如果i==1:
n==1

elif i有几件事需要解决:

  • 您需要将输入“n”转换为整数
  • 循环的每次迭代都会覆盖您的“b”
  • 为什么在第二种情况下使用“原始输入”“输入”将为您提供一个经过净化的输入版本,在这种情况下更可取(这样恶意用户就无法插入代码)
  • 保持简单,使用列表而不是地图

    
    n=int(输入())
    行=[]#将以整数列表的形式包含输入
    对于范围(n)中的i:
    行\字符串=输入()
    行=[int(num)表示行中的num\u string.split()]
    行。追加(行)
    


  • 请展示你的努力。到目前为止,您的代码是什么?似乎这里可能存在一些XY问题。在循环之前创建一个空列表,并将
    每个
    映射
    附加到它,而不是将它们分配给变量。到目前为止,您的代码唯一真正的问题是
    b
    每次通过循环都会被覆盖;你还没有在一秒钟内积累你的列表,外部列表。我已经编辑了我的问题并添加了我的小代码。你能检查一下而不是将所有列表附加到一个列表中吗?我们不能采取不同的方式吗variables@saivinaymanapuram不,你不能,你真的没有理由这么做。这看起来像某种编程练习(可能是Hackerrank?),您可能希望对每个列表执行相同的操作。因此,将它们放在一个列表中比使用许多不同名称的变量要好得多。似乎您混淆了
    input
    raw\u input
    的作用
    raw_input
    只存在于Python 2中(因此OP似乎就是这样使用的),它与Python 3中的
    input
    做相同的事情,而Python 2中的
    input
    也会计算输入,因此不需要对
    int
    进行转换。@tobias_感谢您的反馈。我知道这一点,但对输入进行评估通常不是一种不安全的做法吗?如果代码片段是完整的使用范围,那么可能没有风险,但是如果在更大的软件中使用该代码片段呢?注射的风险值得吗?
    
    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)