我想逐行读取n元素的输入,我希望它们位于嵌套列表中。 3个元素 输入:
Anna
1
Hath
2
Nick
3
预期产量
[["Anna",1]["Hath",2]["Nick",3]]
我计划运行一个n * 2的for循环,以获取6个元素的输入,但是我想每2个元素创建一个列表,所有这些单独的列表将成为更大列表的一部分。
答案 0 :(得分:3)
只需对range
使用列表理解:
n = 3
[[input(), int(input())] for _ in range(n)]
#[['Anna', '1'], ['Hath', '2'], ['Nick', '3']]
如果您正在谈论从文件(而不是stdin
)中读取文件,则只需先打开文件,然后在文件对象上使用readline()
来代替input()
:
n = 3
with open('your_file') as f:
[[f.readline(), int(f.readline())] for _ in range(n)]
旁注:如果您不熟悉约定,则在for循环中不需要该变量时,下划线(_
)用作占位符