首先:是的我知道,这不是你所说的优雅编程,但我唯一的目标是简短,不可读。
现在真正的问题: 我想在列表中存储一定数量的x字符串。 用户输入他想要输入的字符串数,然后逐个输入。这是我到目前为止所得到的:
print(
[
exec(
('input("text: "),' * int(input('number: ')))[:-1]
)
]
)
这是一个示例输出:
number: 4
text: one
text: two
text: three
text: four
[None]
为什么在列表创建过程中不考虑输入? 我怎么能这样做(短[呃])?
答案 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
。