使用推导式和生成器创建数组

简介: 使用推导式和生成器创建数组

使用推导式和生成器创建数组

创建数组的另一种有用方法是使用推导。

数组推导式语法格式如下:

A = [ F(x,y,...) for x=rx, y=ry, ... ]
F(x,y,...) 取其给定列表中变量 x,y 等的每个值进行计算。值可以指定为任何可迭代对象,但通常是 1:n 或 2:(n-1) 之类的范围,或者像 [1.2, 3.4, 5.7] 这样的显式数组值。结果是一个 N 维密集数组,将变量范围 rx,ry 等的维数拼接起来得到其维数,并且每次 F(x,y,...) 计算返回一个标量。

实例
julia> [n^2 for n in 1:10]
10-element Vector{Int64}:
1
4
9
16
25
36
49
64
81
100
创建二维数组:

实例
julia> [n*m for n in 1:10, m in 1:10]
10×10 Matrix{Int64}:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
也可以在没有方括号的情况下编写(数组)推导,从而产生称为生成器的对象。

以下实例创建一个数组:

实例
julia> collect(n^2 for n in 1:5)
5-element Vector{Int64}:
1
4
9
16
25
以下表达式在不分配内存的情况下对一个序列进行求和:

实例
julia> sum(1/n^2 for n=1:1000)
1.6439345666815615

使用推导式和生成器创建数组

相关文章
使用推导式和生成器创建数组
使用推导式和生成器创建数组
|
6天前
|
机器学习/深度学习 人工智能 算法
编程之旅:从代码到哲学的启示
【9月更文挑战第20天】在编程的世界里,每一行代码都是思考的足迹,每一个算法都蕴含着解决问题的智慧。正如甘地所言,“你必须成为你希望在世界上看到的改变。” 本文将带你走进编程的内在世界,探索如何通过技术提升自我,实现个人成长和变革。
|
6天前
|
Java 程序员
深入理解Java异常处理机制
【9月更文挑战第20天】在Java编程世界中,异常处理是一项基础而重要的技能。本文将通过通俗易懂的语言和生动的比喻,带你走进Java异常的世界,了解它们的本质、分类以及如何优雅地处理这些不请自来的特殊“客人”。从简单的try-catch语句到复杂的异常链追踪,我们将一步步揭开异常处理的面纱,让你在遇到问题时不再手足无措。
39 21
|
6天前
|
开发框架 Dart Android开发
探索移动应用开发:从概念到实现
【8月更文挑战第52天】在这篇文章中,我们将一起踏上移动应用开发的旅程。从理解移动操作系统的基础知识,到掌握跨平台开发框架如Flutter的应用,文章将逐步引导你构建起自己的移动应用。我们将通过实际代码示例,展示如何利用Dart语言和Flutter框架快速开发一个具有“摇一摇”功能的简单应用。无论你是初学者还是希望扩展技能的开发者,这篇文章都将为你提供有价值的见解和实用的技能。
42 20
|
6天前
|
存储 关系型数据库 MySQL
深入浅出PHP:从基础到实战
【9月更文挑战第20天】本文将带你走进PHP的世界,从最基础的语法开始,逐步深入到实战应用。我们将通过实例讲解PHP的核心概念,如变量、控制结构、函数等,然后介绍如何使用PHP进行数据库操作和文件处理。最后,我们将展示如何用PHP构建一个简单的博客系统,让你在实践中掌握PHP的应用。无论你是编程新手,还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起探索PHP的魅力吧!
|
7天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
54 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
7天前
|
存储 人工智能 数据处理
无影云个人版,免费领取你的AI云电脑!
无影云个人版,利用先进的云计算技术,为用户提供全新的AI云电脑体验。无论是远程办公、数据处理还是视频会议,只需互联网接入即可享受无缝办公体验
|
7天前
|
开发框架 搜索推荐 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第51天】本文是一篇面向初学者的Flutter入门教程,旨在通过简单易懂的语言和实际代码示例,引导读者步入跨平台移动应用开发的世界。文章首先介绍了Flutter的基本概念和优势,然后逐步展示了如何搭建开发环境、创建第一个Flutter应用,并实现了一个简单的待办事项列表。最后,文章探讨了Flutter在实现高性能和美观界面方面的潜力,鼓励读者发挥创意,探索更多可能。
53 15
|
4天前
|
API 网络架构 UED
构建RESTful API的最佳实践
【8月更文挑战第54天】在数字化时代,RESTful API已成为连接不同软件系统、提供数据服务的关键桥梁。本文将深入探讨如何构建高效、可维护的RESTful API,涵盖设计原则、安全策略和性能优化等关键方面。通过具体代码示例,我们将一步步展示如何实现一个简洁、直观且功能强大的API。无论你是新手还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启示。
51 33
|
6天前
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。