大猫杰克 发表于 2021-4-2 19:06:08

list_a=[i i for range(5)]是什么写法?为何可以这样写?

今天看到一种写法从来没见过:genre_listings=
感觉简洁又好用,我的问题是:
1.为什么可以这样写?
2.工作原理是啥?

柿子饼同学 发表于 2021-4-2 19:10:24

本帖最后由 柿子饼同学 于 2021-4-2 19:21 编辑

这是列表推导式,就是可以这么用
和这个是一样的
for index in range(5):
    genre_listings.append(index)
不过这之前要创建一个叫genre_listings的列表

wp231957 发表于 2021-4-2 19:31:42

这是python所特有的语法,没有为啥

弈秋呜呜呜 发表于 2021-4-2 20:03:05

列表推导式,后面还会有一些其他的推导式。这个适合写一些逻辑比较简单的语句,逻辑太复杂的不好写,别人也不好查看

11点要睡觉 发表于 2021-4-2 20:36:10

本帖最后由 11点要睡觉 于 2021-4-2 20:37 编辑

不就是python零基础的第十二课的作业题第五题

>>> [ i*i for i in range(10) ]

>>>


列表推导式(List comprehensions)也叫列表解析,灵感取自函数式编程语言 Haskell。Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:

[有关A的表达式 for A in B]

例如
>>> list1 =
>>> list1


相当于
list1 = []
for x in range(10):
    list1.append(x**2)


江湖散人 发表于 2021-4-3 08:29:37

python解析表达式,这也是这两天刚搞明白的

私はり 发表于 2021-4-4 13:50:36

列表推导式

Stubborn 发表于 2021-4-5 10:45:20

列表推导式,用法如下
List =
迭代可以支持双层,包含两个表达式。
例1>>>List = [ x if x%2 else x+1 for x in rang(10) ]
扩展开后就是这样
List = []
for x in range(10):
    if x%2: List.append(x)
    else:List.append(x+1)
例1>>>List = List = [ x if x%2 else x+1 for x in rang(A) for A in rang(10) ]
List = []
for A in range(10):
    for x in rang(A):
       if x%2: List.append(x)
       else:List.append(x+1)
页: [1]
查看完整版本: list_a=[i i for range(5)]是什么写法?为何可以这样写?