• julia与python中的列表解析.jl


    julia与python中的列表解析.jl

    #=julia与python中的列表解析.jl
    2016年3月16日 07:30:47 codegay
    
    julia是一门很年轻的科学计算语言
    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]结果等效
    
    
  • 相关阅读:
    Linux下用命令格式化U盘
    ABAP
    [Java 并发] Java并发编程实践 思维导图
    html和css实现一级菜单和二级菜单学习笔记
    小贝_mysql建表以及列属性
    Android.mk具体解释
    Maven之——坐标和依赖(上)
    让 Nginx 支持 WAF 防护功能web防火墙
    EZHTTP首页、文档和下载
    http://www.sshguard.net/
  • 原文地址:https://www.cnblogs.com/gayhub/p/5282448.html
Copyright © 2020-2023  润新知