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