julia与python中的列表解析.jl
#=julia与python中的列表解析.jl2016年3月16日 07:30:47 codegayjulia是一门很年轻的科学计算语言julia文档 https://julia-zh-cn.readthedocs.org/zh_CN/latest/初学python几个月,初学julia才几天,理解与认识不到位,如发现有误的地方,请指出,谢谢。=##=在python使用列表解析,感觉比较方便:[r for r in range(10)]可以使用if 过滤元素:[r for r in range(10) if r%2==0]支持else,但是需要写成这样:[r if r%2==0 else r**2 for r in range(10)]我再次看到这篇文章:http://www.swmemo.com/551.html发现python的列表解析居然还能写成这样,我一脸精呆:[ a**2 if a<20 else a*2 for a in range(30) if len(str(a))>1]=##以下julia这几种写法其结果等效的,都是生成1到10的数组:#交互模式中可以使用[1:10],在程序中这样写运行后会有提示。d2=[r for r=1:10]println(d2)d3=[r for r in 1:10]println(d3)#julia的列表解析也可以调用函数[run(`cmd /c echo 今天周"$r"了`) for r=1:5]#但是到目前版本0.4.3还不支持类似python的if 条件判断#可以使用filter()和filter!()进行过滤#以下例子是读取D盘的目录,过滤排除掉f中的目录d=readdir("d:/")f=["快盘","AV","\$RECYCLE.BIN","temp","System Volume Information"]#$是特殊字符,需要加\转义#使用filter过滤排除目录for r in f d=filter(x -> x!=r,d)end#以上正常的写法,以下是列表解析的写法.列表解析中可以调用函数对不对?即学即用可以改成如下代码:[filter!(x->x!=r,d) for r in f]#参考手册中的 . 按位操作符,还有以下这样的写法:d=d[d.!="快盘"]#依此类推吧...d=d[d.!="AV"]#经过测试,与python不同,julia中的列表解析支持符值语句,所以列表解析可以写成像下面这样[d=d[d.!=r] for r in f] #与[filter!(x->x!=r,d) for r in f]结果等效