Python 有没有更简单、有效或更短的方法来实现这一点?
它会问10次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
“你的号码是多少?”
和。用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,记住这一点。:)无论如何,最慢的部分可能是用户输入部分,而不是循环。