将输入读入嵌套列表

时间:2018-08-29 17:55:02

标签: python python-3.x

我想逐行读取n元素的输入,我希望它们位于嵌套列表中。 3个元素 输入:

Anna
1
Hath
2
Nick
3

预期产量

[["Anna",1]["Hath",2]["Nick",3]]

我计划运行一个n * 2的for循环,以获取6个元素的输入,但是我想每2个元素创建一个列表,所有这些单独的列表将成为更大列表的一部分。

1 个答案:

答案 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循环中不需要该变量时,下划线(_)用作占位符