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]结果等效

julia与python中的列表解析.jl的更多相关文章

  1. Python中的列表解析和生成器表达式

    Python中的列表解析和生成器表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析案例 #!/usr/bin/env python #_*_coding:utf-8 ...

  2. python 中的列表解析和生成表达式 - 转

    优雅.清晰和务实都是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析(  List comprehensions)和生成表达式,通过这两 ...

  3. Python中的列表解析和生成表达式

    摘要:优雅.清晰和务实都是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析( List comprehensions)和生成表达式,通过 ...

  4. Python中的列表解析和列表推导是一回事吗?

    列表解析和列表推导就是一个意思,只是从英文"list comprehension"翻译过来的不同翻译方法. 列表解析就是通过解析表达式从一个可迭代对象生成一个新的列表的Python ...

  5. Python 迭代器和列表解析

    Python 迭代器和列表解析 1)迭代器 一种特殊的数据结构,以对象形式存在 >>> i1 = l1.__iter__() >>> i1 = iter(l1) 可 ...

  6. 第14.12节 Python中使用BeautifulSoup解析http报文:使用select方法快速定位内容

    一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSo ...

  7. 第14.11节 Python中使用BeautifulSoup解析http报文:使用查找方法快速定位内容

    一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>介绍了BeautifulSoup对象的主要属性,通过这些属性可以访 ...

  8. python中的列表及numpy数组排序

    一.列表排序  # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...

  9. Python中的列表生成式和多层表达式

    Python中的列表生成式和多层表达式 如何生成[1x1, 2x2, 3x3, ..., 10x10]的列表? L=[]; ,): L.append(x*x) print L print (" ...

随机推荐

  1. R语言实战

    教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...

  2. screenX clientX pageX的区别

    screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角 ...

  3. [backbone] Getting Started with Backbone.js

    一.简介 Backbone 是一个 JavaScript MVC 框架,它属于轻量级框架,且易于学习掌握.模型.视图.集合和路由器从不同的层面划分了应用程序,并负责处理几种特定事件.处理 Ajax 应 ...

  4. 《Java程序设计》第一周学习总结

    20145224 <Java程序设计>第一周学习总结 教材学习内容总结 通过第一周的学习让我对Java有了个初步的了解,知道了Java分为Java SE.Java EE.Java ME三大 ...

  5. PHP程序员面试技巧之口试题分享

    网络上流传很广的一部分php工程师面试题目,有些phper们认为这些很形式,天下面试题目一大把,不能考核一个人的真实水平,其实细细研究起来,无论怎样,能存在就表明其有存在的价值.下面小编整理了12条P ...

  6. Populating Next Right Pointers in Each Node II [Leetcode]

    Problem Description http://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/ ...

  7. CI(CodeIgniter)框架介绍

    CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包.它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库来满足通常的任务需求,并且提供了一 ...

  8. java--常用类summary(三)

    /* 1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x.举例:'a'表示字符a \\ 反斜线字符. \n 新行(换行)符 ('\u000A') \r 回车 ...

  9. ArangoDB介绍——未知架构和底层原理

    ArangoDB介绍 ArangoDB是一个开源NoSQL数据库,官网:https://www.ArangoDB.org/ArangoDB支持灵活的数据模型,比如文档Document.图Graph以及 ...

  10. 445. Add Two Numbers II ——while s1 or s2 or carry 题目再简单也要些测试用例

    You are given two linked lists representing two non-negative numbers. The most significant digit com ...