我需要一些理解方面的帮助,或者像如何阅读这些理解
[word[1:-1:2] for word in ['Norway', 'Sweden', 'Denmark'] if 'r' in word]
h = [2*x for x in range(10) if divmod(x, 2)[1] == 0]提前感谢
发布于 2021-05-21 23:25:37
通常,对于每个for,从右到左。
第一个示例:
for word in ['Norway', 'Sweden', 'Denmark'] if 'r' in word
对于包含字母r的每个单词
word[1, -1, 2]
将word添加到列表中,并对word进行特殊修改。
第二个例子:
for x in range(10) if divmod(x, 2)[1] == 0
对于每个x的个位数,如果x/2的余数为0
2**x
添加2**x到列表。
在更复杂的嵌套for循环的情况下,这会更有意义。
发布于 2021-05-21 23:19:48
[word[1:-1:2] for word in ['Norway', 'Sweden', 'Denmark'] if 'r' in word]等同于:
result = []
for word in ['Norway', 'Sweden', 'Denmark']:
if 'r' in word:
result.append(word[1:-1:2])h = [2*x for x in range(10) if divmod(x, 2)[1] == 0]等同于:
h = []
for x in range(10):
if divmod(x, 2)[1] == 0:
h.append(2*x)发布于 2021-05-21 23:19:36
列出理解的模式是
[what to do - for loop - optional if statement]它扩展到(示例1)
output_list = []
for word in ['Norway', 'Sweden', 'Denmark']:
if 'r' in word:
output_list.append(word[1:-1:2])示例2:
h = []
for x in range(10):
if divmod(x, 2)[1] == 0:
h.append(2*x)https://stackoverflow.com/questions/67639566
复制相似问题