python列表

python里面“+”与append()的区别,并且用代码测试二者的运行速度。

不想你离开。 提交于 2020-03-21 12:52:55
如果你对内存地址的概念不是很理解的话,很容易就认为二者用法一样,应该没什么大的区别,其实二者区别还是比较明显的。 先来看“+”,这个字符表示为列表添加元素,严格意义来讲,"+"并不是真的为列表添加元素,而是创建一个新的列表,并且将原列表的元素和要添加的元素依次复制到新列表的内存空间里面。会改变列表内存中的地址。 append()方法,是在原有的列表里面添加元素,不会改变列表的内存中的首地址。 下面我将用代码来测试一下二者的添加速度: 1 import time 2 3 result = [] 4 start = time.time() 5 for i in range(10000): 6 result = result + [i] 7 print(len(result), ",", time.time() - start) 8 9 result = [] 10 start = time.time() 11 for i in range(10000): 12 result.append(i) 13 print(len(result), ",", time.time() - start) 运行结果: 从运行结果来看,使用append()的添加速度要快于"+"。 来源: https://www.cnblogs.com/youliang-null/p/12537395.html

python基础数据类型--list列表

て烟熏妆下的殇ゞ 提交于 2020-03-21 07:33:59
列表: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}] 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。 #列表能放字符串、数字、列表、字典,当都不会改变列表的属性li = ['alex',100,True,[1,2,3],{'name':'太白'}] 1.索引、切片、切片+步长 索引 li = ['alex',100,True,[1,2,3],{'name':'太白'}]print(li[0],type(li[0]))#运行结果 alex <class 'str'> 切片+步长 li = ['alex',100,True,[1,2,3],{'name':'太白'}] print(li[0:2])print(li[0:3:2])print(li[-1:1:-1]) 2.增、删、改、查 l1 = ['alex','wusir',

python 知识回顾

两盒软妹~` 提交于 2020-03-20 22:12:04
第一章:搭建编程环境 1.在Windows系统中搭建Python编程环境。     1.1 安装Python     访问http://python.org/downloads/ ,点击下载到本地,后安装。   1.2安装文本编辑器(IDE)     访问https://www.jetbrains.com/zh/pycharm/specials/pycharm/pycharm.html? 下载pycharm,后安装。 第二章:变量和简单数据类型 1.变量    命名和使用:变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头;         变量名不能包含空格,但可使用下划线来分隔其中的单词;         不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词;         变量名应既简短又具有描述性;         慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。 2.字符串:用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。    2.1使用方法修改字符串的大小写。     title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写;     lower()将字符串先转换为小写;   2.2合并(拼接)字符串。     加号(+ )来合并字符串。   2

python学习笔记(1)

依然范特西╮ 提交于 2020-03-20 19:18:55
变量的命名 变量名只能包含字母、数字、下划线,不能以数字打头 不要用Python关键字、函数名、保留用于特殊用途的单词作变量名 变量名应短且有描述性 慎用小写l和大写O 字符串 就是一系列字符 在Python中,用引号扩起的都是字符串,引号可以是单引号或双引号。 例:"ABC'def'"、'ABC"def"' 这两个字符串分别包含了单引号和双引号 print("ABC'def'") #输出 ABC'def' title(): 单词首字母大写 print("ABC'def'".title()) #输出Abc'Def' lower(): 全小写       print("ABC'def'".lower()) #输出abc'def' upper(): 全大写 合并字符串 'abc'+'def' 删除空白 strip():删除字符串左右的空白     str='abc '  print(str.strip())  #输出abc(无末尾空白) lstrip():删除字符串开头的空白 rstrip():删除字符串末尾的空白 str(): 字符串转数字 注释 单行注释:#... 多行注释:''' ... ''' 继续(\) 一个过长的语句可以使用反斜杠分解成几行 if(weather_is_hot == 1) and \ (shark_warnings == 0): ... 列表

Python迭代器详解

落花浮王杯 提交于 2020-03-20 18:07:43
从for循环说起 我们都知道,在Python中,我们可以for循环去遍历一个列表,元组或者range对象。 for i in [1,2,3]: print(i) for i in range(0,10): print(i) 那底层的原理是什么样的呢?这其中涉及到了几个概念,“可迭代”,“迭代器”,“生成器”等,大部分人可能听过这些名词,但是他们具体的含义以及之间的关系可能没搞清楚,以下就是它们之间的关系图,接下来我们就来分析这个关系图。 可迭代对象与迭代器(先不关心左边的生成器) 如果一个对象是可迭代对象,那么我们就可以用for循环去遍历它,比如列表、元组、字符串等都是可迭代对象。而我们用for循环去遍历它的原理就是,先获取了它的迭代器,然后使用迭代器的next方法去逐一遍历。 a = [1,2,3] # for相当于下面的代码 for i in a: print(i) # for循环分解(实际是通过Python底层C语言实现的,此处只是演示) ## 第一步: 获取迭代器 iterator_a = iter(a) ## 第二步: 通过next逐个遍历 while True: try: print(next(iterator_a)) except StopIteration: ## 第三步:遇到StopIteration异常,停止 break 注意可迭代对象与迭代器的区别

python基础第二天(day14)

爷,独闯天下 提交于 2020-03-20 05:12:16
参考 https://www.cnblogs.com/alex3714/articles/5465198.html 多行注释 ''' '''变成字符串 """ """ 单引号,双引号没有区别,只适用于单行 三个单引号,双引号 多行 #是真正的被注释掉 数据类型初识 1、数字 int(整型) long(长整型) python3没有长整型的概念,自动变 float(浮点型) 复数 2、布尔值   真或假 True false   1 或 0 3、字符串 "hello world" 万恶的字符串拼接:   python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。 字符串格式化输出 1 2 3 4 name = "alex" print "i am %s " % name #输出: i am alex PS: 字符串是 %s;整数 %d;浮点数%f 字符串常用功能: 移除空白 分割 长度 索引 切片 字符串切片 从左到右,顾头不顾尾 name = "9 wo shi; ni lao zi" print(name) print(name.strip("9")) # Python strip() 脱掉 方法用于移除字符串头尾指定的字符(默认为空格

第五章 函数

懵懂的女人 提交于 2020-03-20 00:03:41
5.1 三元运算(三目运算) 三元运算的基本结构: v = 前面的值 if 条件 else 后面 条件为真 v=前面的值,条件为假v=后面的值 if 条件: v = '前面' else: v = '后面' 例题: 让用户输入值,如果值是整数,则转换成整数,否则赋值为none data = input('') value = int(data) True if datea.isdecimal() else none 5.2 函数 截止目前:都是面向过程编程。其特点是可读性差/可重用性差 为了增加代码的重复利用,可读性,所以引入函数 面向过程编程 user_input = input('请输入角色:') if user_input == '管理员': pass #给管理员发邮件,10行代码 if user_input == '业务员': pas s#给业务员发邮件,10行代码 if user_input == '老板': pass #给老板发邮件,10行代码 对于函数编程: 本质:将N行代码拿到别处并给它起个名字,以后通过名字可以找到这段代码并执行 场景: 代码重复执行 代码量特别多超过一屏,可以选择通过函数进行代码分分割 5.2.1函数的基本结构 def 函数名(形参): #函数的定义 def 函数名(): 函数名的命名规则和变量名命名规则一样 函数内容 pass 函数的执行 函数名

python中的字符串 列表 字典

醉酒当歌 提交于 2020-03-19 21:43:46
字符串 一个有序的字符集合 不可变 1,可以使用for in语句进行迭代循环,返回元素 2,in类是于str.find()方法但是是返回布尔结果 str.find()返回的是位置 操作 查找字符串: find 找不到返回-1 rfind 从右边 index 报错 都是从左边开始查找 rindex 从右边 统计字符串个数 count 替换字符串 replace 原字符串不变 切割 split 不包含隔开符,切割为一个列表 splitslines 按换行符去隔开 partition 包含隔开符 partition 首字母 capitaize 第一个位 首字母 大写 title 所有单词首字母 大小写变换 upper lower 判断开头结尾 startswith endswith 对齐 ljust rjust center 删除空白符 lstrip 左边 rstrip 右边 strip 两边 判断字符串的组成 isalpha 全为字母 isdigit 全为数子 isalnum 全为字母或数字 isspace 全为空格 将列表转换为字符串 join L=['s','p','a','n'] 例如: S=".join(L) s='span' 列表操作 lisst[0] =值 操作 增加 append 在后面追加 原处修改,返回值None extend 两个集合合并 insert 某

Python 数据类型及其用法

删除回忆录丶 提交于 2020-03-19 21:41:46
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁。 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串、整型、浮点型以及布尔类型。这些基本数据类型组成了基本控制块,从而创建我们的Python应用程序。 字符串 字符串(String) 是一段文本字符,通常以某种形式向用户输出。如果我们打开Python的解释器,我们试着最常见的输出“Hello World!”应用: >>> print ("Hello, world!")Hello, world! Python 中的数据类型不需要像Java或C语言那样显示的定义,这就意味着在Python中字符串就是简单地用引号括起来来标识,向上面的“Hello, world!”那样。我们也可以使用单引号而不是双引号,当我们字符串中就有双引号时,使用单引号来表示整个字符串更加方便,如: >>> print ("This is David's program")This is David's program>>> print ('"Hello", said David')"Hello", said David 从上面你就可以看出在不同的条件下如何交叉使用不同的引号。 字符串提供了许多内置的函数,这些在很多Python程序中很有用处,它们包括: endswith() - 检查字符串是否以给定字符串结尾

Python - 那些年我们踩过的那些坑

故事扮演 提交于 2020-03-19 13:13:56
坑1、整数比较的坑 在Python中一切都是对象,整数也是对象,在比较两个整数时有两个运算符“==”和“is”,它们的区别是: ·is比较的是两个整数对象的id值是否相等,也就是比较两个引用是否代表了内存中同一个地址。 ·==比较的是两个整数对象的内容是否相等,使用==时其实是调用了对象的__eq__()方法。 知道了is和==的区别之后,我们可以来看看下面的代码,了解Python中整数比较有哪些坑: #! /usr/bin/env python3 # -*- coding:utf-8 -*- # Author : Ma Yi # Blog : http://www.cnblogs.com/mayi0312/ # Date : 2020-03-19 # Name : test01 # Software : PyCharm # Note : 整数比较的坑 def main(): x = y = -1 while True: x += 1 y += 1 if x is y: print("%d is %d" % (x, y)) else: print("Attention! %d is not %d" % (x, y)) break x = y = 0 while True: x -= 1 y -= 1 if x is y: print("%d is %d" % (x, y))