Go+语言初体验——GoPlus和python列表推导式的异同

啊~小 l i 社区中级贡献者
人工智能领域新星创作者
2021-12-07 19:59:55

列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。 它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。 那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。 返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

GoPlus与python的列表推导式的对比

part1:是否支持列表推导式:
GOPlus
print [x*x for x <- [1, 3, 5, 7, 11]]
python
print([x*x for x in [1, 3, 5, 7, 11]])
均支持
part2:是否支持列表推导式直接输出:
python支持
[print(x) for x in [1, 3, 5, 7, 11]]
GoPlus可能支持
[print(x) for x <- [1, 3, 5, 7, 11]]

part3:列表推导式是否支持嵌入判断
python
print([x for x in [1, 3, 5, 7, 11] if x > 5])
GoPlus
println [x for x <- [1, 3, 5, 7, 11], x > 5]
均支持
**part4:python支持列表推导式的嵌套 **
python

a = [[1, 2, 3, 4], [5, 6, 7, 8]]
print([s for i in a for s in i])

GoPlus不支持

a := [[1, 2, 3, 4], [5, 6, 7, 8]]
println([s for i <- a,for s <- i])  // 没有找到支持嵌套列表推导式的依据,此处可能为语法错误

part5:字典的遍历
GoPlus

a := {1: "cpp", 2: "C#", 3: "python", 4: "Go+"}
print {c: b for c, b <- a}

这里GoPlus支持字符串的链接操作

a := {"1": "cpp", "2": "C#", "3": "python", "4": "Go+"}
print [c+" "+b for c, b <- a]

这里必须同时为string类型才可以,如果不全是string类型使用强转结果会有异常(python支持这种操作)

img

python

a = {1: "cpp", 2: "C#", 3: "python", 4: "Go+"}
print({i:j for i, j in a.items()})

part6:一次从列表里取出连续的两个值(一个值为下标,一个为该下标的值)
GoPlus
print {x: i for i, x <- [1, 3, 5, 7, 11], i%2 == 1}
Python不支持一次从列表中取出两个值(其实取出的i为序号,就是该数字所在的下标)
但是python有enumerate()函数,可以代替这种取值方式
print({i: j for i, j in enumerate([1, 2, 3, 3])})

活动地址:https://bbs.csdn.net/topics/603464006?utm_source=1573038595

...全文
803 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
啊~小 l i 社区中级贡献者 2021-12-07
  • 打赏
  • 举报
回复

GoPlus的语法是依据python的语法推出来的,尝试过多种方式得出来结论,有错误可以留言,我会及时修改

xushiweizh 2021-12-08
  • 举报
回复
@啊~小 l i 嵌套支持的,去掉中间的,号就行
啊~小 l i 社区中级贡献者 2021-12-08
  • 举报
回复
@xushiweizh 我试了一下,还是会报错
相关推荐
发帖
Go+ 开发者社区

906

社区成员

Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。 Go+ 官网:https://goplus.org/
其他 企业社区
社区管理员
  • Go+
  • 杨东杰
加入社区
帖子事件
创建了帖子
2021-12-07 19:59
社区公告

本社区为 Go+ 官方开发者社区。我们希望向广大的开发者和数据科学家介绍 Go+ 的定位和意义,并邀请更多开发者一起贡献代码、共建 Go+ 生态。

Go+ 官网:https://goplus.org/
GitHub地址:https://github.com/goplus/gop