首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阅读此列表理解

问如何阅读此列表理解
EN

Stack Overflow用户
提问于 2021-05-21 23:13:42
回答 3查看 52关注 0票数 0

我需要一些理解方面的帮助,或者像如何阅读这些理解

代码语言:javascript
复制
[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]

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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循环的情况下,这会更有意义。

票数 3
EN

Stack Overflow用户

发布于 2021-05-21 23:19:48

代码语言:javascript
复制
[word[1:-1:2] for word in ['Norway', 'Sweden', 'Denmark'] if 'r' in word]

等同于:

代码语言:javascript
复制
result = []
for word in ['Norway', 'Sweden', 'Denmark']:
    if 'r' in word:
        result.append(word[1:-1:2])
代码语言:javascript
复制
h = [2*x for x in range(10) if divmod(x, 2)[1] == 0]

等同于:

代码语言:javascript
复制
h = []
for x in range(10):
    if divmod(x, 2)[1] == 0:
        h.append(2*x)
票数 1
EN

Stack Overflow用户

发布于 2021-05-21 23:19:36

列出理解的模式是

代码语言:javascript
复制
[what to do - for loop - optional if statement]

它扩展到(示例1)

代码语言:javascript
复制
output_list = []
for word in ['Norway', 'Sweden', 'Denmark']:
  if 'r' in word:
    output_list.append(word[1:-1:2])

示例2:

代码语言:javascript
复制
h = []
for x in range(10):
    if divmod(x, 2)[1] == 0:
        h.append(2*x)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67639566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档