将输入变量存储在列表中的简短方法

时间:2015-08-25 12:43:27

标签: python python-3.x

首先:是的我知道,这不是你所说的优雅编程,但我唯一的目标是简短,不可读。

现在真正的问题: 我想在列表中存储一定数量的x字符串。 用户输入他想要输入的字符串数,然后逐个输入。这是我到目前为止所得到的:

print(
    [
        exec(
            ('input("text: "),' * int(input('number: ')))[:-1]
        )
    ]
)

这是一个示例输出:

number: 4
text: one
text: two
text: three
text: four
[None]

为什么在列表创建过程中不考虑输入? 我怎么能这样做(短[呃])?

2 个答案:

答案 0 :(得分:2)

我能做出的最短最愚蠢......

 print map(input,['text: ']*input("number: "))
  • input("number: ")根据用户输入生成str
  • ['text: ']*input生成一个长度等于输入的数组,每个值包含'text: '
  • map遍历数组并将值提供给input
  • 结果以列表形式返回并打印

编辑Python3:

 print(list(map(input,['text: ']*int(input("number: ")))))

Edit2:为python2 thx保存了一个char到@Delgan

答案 1 :(得分:1)

可读>几乎每次都很短暂。

在这种情况下,假设您需要来自用户的字符串列表,例如:

count = int(input("number of strings: "))
strings = []
for i in range(count):
    strings.append(input("text: "))
print(strings)

应该有用。

一般情况下,请尽量避免使用exec