Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有更简单、有效或更短的方法来实现这一点?_Python_List_Input_Append_List Comprehension - Fatal编程技术网

Python 有没有更简单、有效或更短的方法来实现这一点?

Python 有没有更简单、有效或更短的方法来实现这一点?,python,list,input,append,list-comprehension,Python,List,Input,Append,List Comprehension,它会问10次“你的号码是多少?”和。用input()将获得的答案作为int添加到一个列表中,我想知道有什么简单的方法可以做到这一点,也许可以使用map?我也读过关于json的类似问题 finallist = [] for each_time in range(10): x = int(input("Whats your number ? ")) finallist.append(x) 我知道我能做到这一点,但出于解释的原因,我宁愿写第一个。你可以用一个理解: finallist

它会问10次
“你的号码是多少?”
。用
input()
将获得的答案作为
int
添加到一个列表中,我想知道有什么简单的方法可以做到这一点,也许可以使用map?我也读过关于
json
的类似问题

finallist = []
for each_time in range(10):
    x = int(input("Whats your number ? "))
    finallist.append(x)

我知道我能做到这一点,但出于解释的原因,我宁愿写第一个。

你可以用一个理解:

finallist.append(int(input("Whats your number ? ")))
finallist = [int(input("Whats your number ? ")) for _ in range(10)]

使用理解总是比
for
循环更好的选择:

numbers = [int(input("Number please")) for i in range(10)]
您可以通过列表来完成:

finallist.append(int(input("Whats your number ? ")))
finallist = [int(input("Whats your number ? ")) for _ in range(10)]
但是我,因为不太清楚发生了什么

或者,正如Python的Zen所说:

finallist = [int(input("Whats your number ? ")) for _ in range(10)]

当您的功能没有副作用时,列表理解(和
map
filter
reduce
等)是最好的。要求用户输入也有副作用。

考虑允许用户在一个由空格分隔的空格中键入所有内容,大致如下:

>>> import this
...
Explicit is better than implicit.

[int(输入(“您的号码是多少?”))表示范围(11)]
?这很好。过早优化是“万恶之源”。为了节省几行代码而这样做是愚蠢的。谢谢,我只是想知道一个更简单的内置程序是否能为我做到这一点@juanpa.arrivillagaMinor改进:如果你从不使用你用来迭代一个iterable的变量-
i
,在你的例子中-通常使用
\ucode>来代替。这让读者知道,您只是为了代码重复而在iterable上进行迭代。@ChristianDean不知道这一点,感谢Up投票推荐OP反对使用它。通过使用列表理解和普通循环,OP确实没有获得那么多。正如@juanpa.arrivillaga在评论中所说,过早优化很少是个好主意。它取决于你对确定用户输入是“副作用”还是计算的看法。对于1到10的i来说,这不是“发射核武器”,而是1到10的i来说的“确定我输入的数字”。不管怎样,你用计算玷污了一个纯粹的列表理解。列表理解的重点是计算一个事物列表。你用列表理解做什么?@BrunoCerk,记住这一点。:)无论如何,最慢的部分可能是用户输入部分,而不是循环。