找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13974|回复: 1

[原创教程] julia与python中的列表解析.jl

[复制链接]
发表于 2016-3-16 09:33:51 | 显示全部楼层 |阅读模式
本帖最后由 codegay 于 2016-3-16 10:37 编辑

julia与python中的列表解析.jl
  1. #=julia与python中的列表解析.jl
  2. 2016年3月16日 07:30:47 codegay

  3. julia是一门很年轻的科学计算语言
  4. julia文档 https://julia-zh-cn.readthedocs.org/zh_CN/latest/
  5. 初学python几个月,初学julia才几天,理解与认识不到位,
  6. 如发现有误的地方,请指出,谢谢。
  7. =#

  8. #=
  9. 在python使用列表解析,感觉比较方便:
  10. [r for r in range(10)]

  11. 可以使用if 过滤元素:
  12. [r for r in range(10) if r%2==0]

  13. 支持else,但是需要写成这样:
  14. [r if r%2==0 else r**2 for r in range(10)]

  15. 我再次看到这篇文章:http://www.swmemo.com/551.html
  16. 发现python的列表解析居然还能写成这样,我一脸精呆:
  17. [ a**2 if a<20 else a*2 for a in range(30) if len(str(a))>1]

  18. =#

  19. #以下julia这几种写法其结果等效的,都是生成1到10的数组:
  20. #交互模式中可以使用[1:10],在程序中这样写运行后会有提示。
  21. d2=[r for r=1:10]
  22. println(d2)
  23. d3=[r for r in 1:10]
  24. println(d3)

  25. #julia的列表解析也可以调用函数
  26. [run(`cmd /c echo 今天周"$r"了`) for r=1:5]

  27. #但是到目前版本0.4.3还不支持类似python的if 条件判断
  28. #可以使用filter()和filter!()进行过滤
  29. #以下例子是读取D盘的目录,过滤排除掉f中的目录
  30. d=readdir("d:/")
  31. f=["快盘","AV","\$RECYCLE.BIN","temp","System Volume Information"]
  32. #$是特殊字符,需要加\转义

  33. #使用filter过滤排除目录
  34. for r in f
  35.   d=filter(x -> x!=r,d)
  36. end
  37. #以上正常的写法,以下是列表解析的写法.列表解析中可以调用函数对不对?即学即用可以改成如下代码:
  38. [filter!(x->x!=r,d) for r in f]

  39. #参考手册中的 . 按位操作符,还有以下这样的写法:
  40. d=d[d.!="快盘"]
  41. #依此类推吧...
  42. d=d[d.!="AV"]

  43. #经过测试,与python不同,julia中的列表解析支持符值语句,所以列表解析可以写成像下面这样
  44. [d=d[d.!=r] for r in f] #与[filter!(x->x!=r,d) for r in f]结果等效
复制代码

评分

参与人数 2技术 +2 收起 理由
CrLf + 1 耀眼
happy886rr + 1 牛人,啥语言都会

查看全部评分

 楼主| 发表于 2016-3-16 10:44:16 | 显示全部楼层
哈哈,这逼装定了。牛人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:44 , Processed in 0.017364 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表