Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 - Fatal编程技术网

Python 是否有较短的方法初始化此循环?

Python 是否有较短的方法初始化此循环?,python,Python,是否有较短的方法初始化此循环? 对于这样一个简单的语句,似乎要输入val四次可能不是最快的方法 这个例子是一个解释我观点的随机代码,实际的循环内容会复杂得多 values=[4,8,0,1,5,8,3] for val in [val for val in values if val!=1]: print(val) 生成器表达式无需创建另一个要迭代的列表并创建迭代器: values = [4,8,0,1,5,8,3] # generator expression instead of

是否有较短的方法初始化此循环? 对于这样一个简单的语句,似乎要输入val四次可能不是最快的方法

这个例子是一个解释我观点的随机代码,实际的循环内容会复杂得多

values=[4,8,0,1,5,8,3]
for val in [val for val in values if val!=1]:
    print(val)

生成器表达式无需创建另一个要迭代的列表并创建迭代器:

values = [4,8,0,1,5,8,3]

# generator expression instead of list expressen - is more efficient
for val in (val for val in values if val != 1):
    print(val)

# filter the list  - creates an iterator
for val in filter(lambda x:x != 1, values):
    print (val)
输出:

4
8
0
5
8
3

值中的val如何:如果val!=1:printval?可读性太强?我的第一个选择是可能的重复,但你必须在不同的行中键入for循环和if条件,否则python会引发语法错误,因为我经常使用这种逻辑,我想知道有没有简单的一句话solution@StellarStreamsIf代码比If条件的额外行简单,不会杀死您,而且可读性很强。可读性很重要,如果代码更复杂,那么无论如何,你都需要在几行上进行逻辑运算。这就像用链锯削猫一样。非常messy@andrew只有当你触摸猫的皮肤。你认为两者中哪一个比较混乱?我不会把两者都贴上这样的标签。。。如果要测试一个更复杂的函数,我将为此创建一个函数,并在任何一个函数中使用它。在循环中添加if语句也是一种可能性,但您已经建议了。两者都可以。直到永远,也就是有一天,我可以浏览并阅读循环代码,如果条件满足,则下一行代码,然后执行一些操作,而无需重新阅读。我得花一秒钟来读你的代码,这违背了目的。我们都知道我们会做循环,下一行,如果简单的版本无论如何,所以我希望这是一个没有意义的点