我发现yield-based生成器对于序列操作非常有用,因为这些操作太复杂,无法使用列表理解。假设我想从一个专门的生成器中构造一个列表。如果Python有多行labmda,我可以使用: for <whatever>:但是Python没有多行lambda(注意:请不要建议使用列表理解;我指的是何时使用yield的逻辑更为复杂的情况。)
当我还是python初学者时,我可以创建一个包含1~100的列表的多行for循环:for i in range(1,101):当我知道如何为循环编写一行代码时a=[ _ for _ in range(1,101)]
当我现在详细回顾python文档并重新学习python时,我发现range()内置函数--它可以直接列出一个列表--但是我看上去没有人这样做。
我为该任务编写了以下代码: with open('C:/python/namessample.txt') as nameFile:
nameGenerator我猜name是一个列表的原因是因为.split返回一个列表,但是我想不出一种不同的方法来分隔文件中的名称。我还使用.strip删除了前导引号和尾随引号。