python数组操作

283.移动零 关于列表list与remove原理*****

Deadly 提交于 2019-11-27 08:17:24
题目:   给定一个数组 nums ,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。   注意,该题目要求不开辟行的数组空间,在原数据上进行操作。   示例:   输入: [0,1,0,3,12]   输出: [1,3,12,0,0]   说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 自我解答:   思路1:如同冒泡算法那样,用两个for循环进行遍历,将0依次移动到列表最后面。   缺点:复杂度太高,n^n,上传答案时会报错。   思路2:for循环遍历数组,当该数为0时,remove移除该数,     在这里有两个python知识点。   原本,我是希望先把所有的0删除后,再往后面添加同样数量的0,但是,发现删不掉0的情况 list1 = [0,2,0,0,8,0,8,0,1] class Solution2: def moveZeroes(self, nums): for i in nums: if i ==0: nums.remove(i) # nums.append(0) print(nums) s = Solution2() s.moveZeroes(list1) #[2, 8, 8, 0, 1]   百度了一番发现了其中的奥秘:    for循环原理   python中for循环是遍历所有nums下标,然后根据下标遍历列表

JavaScript--语法基础

南笙酒味 提交于 2019-11-27 06:01:41
JavaScript基础 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。 DOM :操作 网页上的元素 的API。比如让盒子移动、变色、轮播图等。 BOM :操作 浏览器部分功能 的API。比如让浏览器自动滚动。 PS:JS机械重复性的劳动几乎为0,基本都是创造性的劳动。而不像HTML、CSS中margin、padding都是机械重复劳动。 JavaScript的特点 (1)简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。 (2)解释执行( 解释语言 ):事先不编译、逐行执行、无需进行严格的变量声明。 (3)基于对象:内置大量现成对象,编写少量程序可以完成目标 javascript语法 JavaScript对换行、缩进、空格不敏感。 备注:每一条语句末尾要加上分号,虽然分号不是必须加的,但是为了程序今后要压缩,如果不加分号,压缩之后将不能运行。 所有的符号,都是英语的。比如 括号 、引号、分号。 代码的引入 在HTML中,可以在body标签中插入 <script type="text/javascript"></script> 标签对;通过src引入 <script src=****.js"></script> 变量赋值 变量名有命名规范:只能由英语字母、数字

numpy学习笔记

依然范特西╮ 提交于 2019-11-27 05:21:22
Python中numpy的使用: Numpy: numpy 是 python 的一个扩展库,支持大量的维度数组和矩阵计算,此外,也针对数组运算提供大量的数学函数库. numpy 可用来存储和处理大量矩阵,比 python 自带列表结构要高效的多. numpy是一个运行速度非常快的数学库,主要用于计算数组,包含: 一个强大的N组数组对象 ndarry 广播功能函数 整合 C/C++/Fortran 代码工具 线性代数,傅里叶变换,随机数生成等功能 ndarray: numpy 最重要的一个对象是其 N 维数组对象 ndarray ,它是一系列同类型的数据集合,可以使用基于0的索引访问集合中项目. ndarray 对象是用于 存放同类型元素 的多维数组. ndarray 中每个元素在内存中使用 相同存储大小的区域 , ndarray 中每个元素是数据类型对象的对象( dtype ) 创建一个ndarray只需要调用numpy的array函数,语法: numpy.array(object,dtype = None,ndmin = 0,copy = True,order = None,subok = False) 一般只有object,dtype和ndmin参数常用 参数 描述 object 数组或嵌套的数列 dtype 数组或元素的数据类型,可选 ndmin 指定生成数组的最小维度

JavaScript-ECMAScript

坚强是说给别人听的谎言 提交于 2019-11-27 03:51:20
javascript介绍 Web前端有三层: HTML:从语义的角度,描述页面 结构 CSS:从审美的角度,描述 样式 (美化页面) JavaScript:从交互的角度,描述 行为 (提升用户体验) 其中JavaScript基础又分为三个部分: ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。 DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。 BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。 特点: 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。 解释执行( 解释语言 ):事先不编译、逐行执行、无需进行严格的变量声明。 基于对象:内置大量现成对象,编写少量程序可以完成目标 javascript语法 JavaScript对换行、缩进、空格不敏感。每一行语句末尾要加上分号,如果不加分号,压缩后将不能运行。 所有符号都是英文 js代码的引入 在body标签中放入 <script type="text/javascript"></script> 标签: <script type="text/javascript"></script> 变量和赋值 变量 var a=100; 命名规范:只能由英语字母、数字、下划线、美元符号$构成,且不能以数字开头

numpy库简单使用

限于喜欢 提交于 2019-11-27 03:41:30
numpy简介 NumPy(Numerical Python)是python语言的一个扩展程序库,支持大量维度数组与矩阵运算,此外,也针对数据运算提供大量的数学函数库。 NumPy是高性能科学计算和数据分析的基础 NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环对整组数据进行快速运算的数学函数 *读写磁盘数据的工具以及用于操作内存映射文件的工具 *线性代数、随机数生成和傅里叶变换功能 *用于集成C、C++等代码的工具 Numpy的安装 pip install numpy ndarray-多维数组创建 ndarry是多维数组结构,与列表区别: 数组对象内的元素类型必须相同 数组大小不可修改 np.array()创建 import numpy as np np.array() ​ # 创建一维数组 np.array([1,2,3,4,5]) # array([1, 2, 3, 4, 5]) ​ # 创建二维数组 np.array([[1,2,3],[4,5,6]]) # array([[1, 2, 3], [4, 5, 6]]) 注意: numpy默认ndarray的所有元素的类型是相同的 如果传进列表中包含不同的类型,会统一为一个类型,优先级:str>float>int np.array([[1,2.2,3],[4,5,6]]) #

一文搞懂Python中的所有数组数据类型

旧城冷巷雨未停 提交于 2019-11-26 17:04:45
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。 Github: https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 数组类型是各种编程语言中基本的数组结构了,本文来盘点下 Python 中各种“数组”类型的实现。 list tuple array.array str bytes bytearray 其实把以上类型都说成是数组是不准确的。这里把数组当作一个广义的概念,即把列表、序列、数组都当作 array-like 数据类型来理解。 注意本文所有代码都是在 Python3.7 中跑的^_^ 0x00 可变的动态列表list list 应该是 Python 最常用到的数组类型了。它的特点是 可变的、能动态扩容,可存储 Python 中的一切对象,使用时不用指定存储的元素的类型 。 使用非常简单 >>> arr = ["one","two","three"] >>> arr[0] 'one' # 动态扩容 >>> arr.append(4) >>> arr ['one', 'two', 'three', 4] # 删除一个元素 >>> del arr[2] >>> arr ['one', 'two', 4]

NumPy的详细教程

假如想象 提交于 2019-11-26 12:58:40
先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutorial. 如果你想要运行教程中的示例,你至少需要在你的电脑上安装了以下一些软件: Python NumPy 这些是可能对你有帮助的: ipython是一个净强化的交互Python Shell,对探索NumPy的特性非常方便。 matplotlib将允许你绘图 Scipy在NumPy的基础上提供了很多科学模块 基础篇 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。 例如,在3D空间一个点的坐标[1, 2, 3]是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[1.,0.,0.], [0.,1.,2.]] NumPy的数组类被称作ndarray 。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。更多重要ndarray对象属性有: ndarray.ndim 数组轴的个数,在python的世界中,轴的个数被称作秩 ndarray

Python字典实现

半腔热情 提交于 2019-11-26 12:10:41
这篇文章描述了在Python中字典是如何实现的。 字典通过键( key )来索引,它可以被看做是关联数组。我们在一个字典中添加3个键/值对: >>> d = {'a': 1, 'b': 2} >>> d['c'] = 3 >>> d {'a': 1, 'b': 2, 'c': 3} 可以这样访问字典值: >>> d['a'] 1 >>> d['b'] 2 >>> d['c'] 3 >>> d['d'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'd' 键'd'不存在,所以抛出了KeyError异常。 哈希表 Python字典是用哈希表( hash table )实现的。哈希表是一个数组,它的索引是对键运用哈希函数( hash function )求得的。哈希函数的作用是将键均匀地分布到数组中,一个好的哈希函数会将冲突(译者注:冲突指不同键经过哈希函数计算得到相同的索引,这样造成索引重复的冲突。)的数量降到最小。Python没有这类哈希函数,它最重要的哈希函数(用于字符串和整数)很常规: >>> map(hash, (0, 1, 2, 3)) [0, 1, 2, 3] >>> map(hash, ("namea", "nameb", "namec", "named"

37个JavaScript基本面试问题和解答

喜欢而已 提交于 2019-11-25 23:25:33
1、使用typeof bar ===“object”来确定bar是否是一个对象时有什么潜在的缺陷?这个陷阱如何避免? 尽管typeof bar ===“object”是检查bar是否是对象的可靠方法,但JavaScript中令人惊讶的问题是_null_也被认为是一个对象! 因此,下面的代码打印到控制台的是true而不是false: var bar = null; console.log(typeof bar === "object"); // logs true! 只要知道这一点,就可以通过检查bar是否为空来轻松避免该问题: console.log((bar !== null) && (typeof bar === "object")); // logs false 为了在我们的答案更加的完整,还有两件事值得注意: 首先,如果bar是一个函数,上面的解决方案将返回false。在大多数情况下,这是所期望的行为,但是在您希望函数返回true的情况下,您可以将上述解决方案修改为: console.log((bar !== null) && ((typeof bar === "object") || (typeof bar === "function"))); 其次,如果bar是数组,则上述解决方案将返回true(例如,如果var bar = [];)。在大多数情况下,这是所希望的行为