python列表

Python学习笔记 | 变量 + 引用 + 拷贝 + 作用域

主宰稳场 提交于 2020-02-16 03:25:36
在Python中,变量是没有类型的,在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可。但是,当用变量的时候,必须要给这个变量赋值;如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义(not defined)。 一、变量和对象 1. 可变对象和不可变对象 在Python中,对象分为两种:可变对象和不可变对象,不可变对象包括int,float,long,str,tuple等,可变对象包括list,set,dict等。需要注意的是:这里说的不可变指的是值的不可变。对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收。另外,不可变的类型可以计算hash值,作为字典的key。可变类型数据对对象操作的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请(+/-)即可,也就是它的内存地址会保持不变,但区域会变长或者变短。 $ python3Python 3.5.3 (default, Feb 27 2017, 09:17:48) [GCC 6.3.0 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> a = 'phoenix'>>> a'phoenix'>>>

Python—迭代器和生成器

送分小仙女□ 提交于 2020-02-16 01:23:00
楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置。 如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序的取值,并不能跳过任何一个直接去取其他位置的值。 但你有没有想过,我们为什么可以使用for循环来取值? for循环内部是怎么工作的呢? 迭代器 python中的for循环 要了解python中的for循环是怎么回事儿,咱们还是要从代码的角度出发。 首先,我们对一个列表进行for循环。 for i in [1,2,3,4]: print(i) 上面这段代码肯定是没有问题的,但是我们换一种情况,来循环一个数字1234试试 for i in 1234 print(i) 结果: Traceback (most recent call last): File "test.py", line 4, in <module> for i in 1234: TypeError: 'int' object is not iterable 看,报错了!报了什么错呢?“TypeError: 'int'

深入理解python(二)python基础知识之数据结构

﹥>﹥吖頭↗ 提交于 2020-02-15 18:45:55
数据结构 Python中的内置数据结构(Built-in Data Structure): 列表list、元组tuple、字典dict、集合set,这里只着重说前三个 >>> d=dict(zip(('e','r'),(1,2))) >>> d.keys() dict_keys(['e', 'r']) >>> d.values() dict_values([1, 2]) >>> d.items() dict_items([('e', 1), ('r', 2)]) 列表 列表是Python中内置可变序列,是若干元素的有序集合。列表中的每一个数据称为元素,列表的所有元素放在一对中括号 [ 和 ] 中,并使用逗号分隔开 关于列表的一些重要操作函数汇总 接下来是几个列表涉及的重要知识点 1.extend()和append() extend()是将加入对象中的元素拼接到列表对象的后面,而append()则是将加入对象直接加入列表末尾。 例: >>> a=[1,2,3] >>> a.append([2,3]) #使用append >>> a [1, 2, 3, [2, 3]] >>> a=[1,2,3] >>> a.extend([2,3]) #使用extend >>> a [1, 2, 3, 2, 3] 2.列表的删除 一般想到列表的删除会想到循环+remove()的方法

python基础学习浅学深浅复制

一世执手 提交于 2020-02-15 07:21:29
1.深浅复制 打比方:有糖纸和糖,深复制就相当于糖纸和糖,而浅复制就只有糖纸 id(object)返回的是对象的“身份证号”(在c++中代表在内存中的地址),唯一且不变。 令外,用is判断两个对象是否相等时,依据就是这个id值。 id查看内存空间地址的。 id查看的地址一样,可以说明它们指向的是同一片空间 小知识点: a = [1,2,3,4] b = a id(a) id(b) #此时的a和b的id是一样的 a.append(4) id(a) id(b) #此时的a和b的id还是一样的,而且没有变。 这样虽然可以拷贝,但是不管改变a还是b,最终a和b都会改变。 可知: 如果改变它的值,内存地址没有改变,那么它就是可变类型。 数值类型不可变,元组和字符串不可变,列表是可变的。 注意:::#################深浅复制特定在嵌套列表(字典里面也可以用)中才会起作用::: 如果是单层列表,如li = [1,2,3,4] 那么深浅复制的id和原列表的id都不同,修改原列表,深浅复制的列表都不会改变。 (1)浅复制 浅复制的话,通过id()函数查找复制前和复制后的 li = [1,2,3] print(id(li)) 输出:190679494 1256 #只能体现在列表 print(id(li2)) 输出:190679493 8824 li2 = li.copy() print

python基础学习浅学排序循环斐波那契(部分为网上引用)

浪尽此生 提交于 2020-02-15 03:25:39
自我学习:python中sorted方法和列表的sort方法使用详解: 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。 1.排序,数字、字符串按照ASCII,中文按照unicode从小到大排序 x = [3,6,2,1,7,9] x.sort() print(x) 输出为:[1,2,4,6,7,9] 创造一个排序好的副本,同时保持原列表不变: x = [4, 6, 2, 1, 7, 9] y = x[:] y.sort() print(y) # [1, 2, 4, 6, 7, 9] print(x) # [4, 6, 2, 1, 7, 9] 注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。 另一种获取已排序的列表副本的方法是使用sorted函数: x =[4, 6, 2, 1, 7, 9] y = sorted(x) print (y) #[1, 2, 4, 6, 7, 9] print (x) #[4, 6, 2, 1, 7, 9] sorted返回一个有序的副本,并且类型总是列表,如下: print (sorted(‘Python’)) #[‘P’, ‘h’, ‘n’, ‘o’, ‘t’, ‘y’] 2.可选参数

Python3 List

馋奶兔 提交于 2020-02-14 11:57:20
List List 是 Python 中最常用的数据类型,在此仅对其做简单归纳整理 我们都知道,在 Python 6 种基础数据类型中,String List Tuple 这三种均属于序列类型,而序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、检查成员、遍历、最小值和最大值。 1. 索引 通过索引的方式,我们可以对列表进行访问以及更新操作: >> > list = [ "hello" , "python" , 2019 ] >> > print ( list [ 1 ] ) >> > list [ 2 ] = 2020 >> > print ( list ) python [ 'hello' , 'python' , 2020 ] 与字符串类似,我们也可以对列表进行切片: >> > list = [ "hello" , "python" , 2019 ] >> > print ( list [ 1 : ] ) >> > print ( list [ : ] ) >> > print ( list [ : - 2 ] ) [ 'python' , 2019 ] [ 'hello' , 'python' , 2019 ] [ 'hello' ] 2. 列表脚本操作符 (1) 列表长度 len() >> > list = [ "hello" , "python" ,

python数据分析(一)-----numpy

微笑、不失礼 提交于 2020-02-14 01:55:21
Python数据分析与展示 掌握表示、清洗、统计和展示数据的能力 列表和数组: 列表数据类型可以不同 3.1413, ‘pi’, 3.1404, [3.1401, 3.1349], ‘3.1376’ 数组数据类型相同 3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376 高维数据:字典类型或数据表示格式(键值对) { “firstName” : “Tian” , “lastName” : “Song” , “address” : { “streetAddr” : “中关村南大街 5 号” , “city” : “北京市” , “zipcode” : “ 100081 ” } , “prof” : [ “Computer System” , “Security” ] } Numpy import numpy as np N维数组对象:ndarray Python已有列表类型,为什么需要一个数组对象(类型) 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据 设置专门的数组对象,经过优化,可以提升这类应用的运算速度 科学计算中,一个维度所有数据的类型往往相同,数组对象采用相同的数据类型,有助于节省运算和存储空间 ndarray是一个多维数组对象,由两部分组成: 实际的数据 描述这些数据的元数据(数据维度、数据类型等)

python函数入门——求偶数

天大地大妈咪最大 提交于 2020-02-13 10:55:56
函数入门: 编写一个函数,检查获取到的列表对象,如果是奇数,返回对应的偶数,如果是偶数则直接返回原值,并将其作为新列表返回给调用者 names = [ '5' , '7' , '9' , '6' , '4' ] def qiuou ( names ) : b = [ ] j = len ( names ) print ( j ) for i in range ( 0 , j ) : c = int ( names [ i ] ) if c % 2 == 1 : b . append ( c + 1 ) else : b . append ( c ) return ( b ) l = qiuou ( names ) print ( l ) 来源: CSDN 作者: 失落的龙 链接: https://blog.csdn.net/hcsshui/article/details/104267774

Python学习笔记之入门(第二篇)

允我心安 提交于 2020-02-13 05:31:29
1、第一个Python代码 在Linux下/home/zx 目录下新建hello.py文件 1 #vim hello.py //添加如下内容 2 3 #!/usr/bin/env python 4 5 # -*- coding:utf-8 -*- 6 print "Hello,World" 7 8 #chmod +x hello.py //添加执行权限 执行代码: ./hello.py 结果: python内部执行过程如下: python首先把hello.py文件读到内存当中,然后经过语法分析和词法分析之后,假如文本没有问题会把文本的内容交给编译器,编译器会把文本的内容编译成字节码,然后执行字节码,把字节码转换成机器码,在进行CPU调度。 2、注释 当行注视:# 被注释内容 多行注释:""" 被注释内容 """ 或者 '''被注释内容'''。 3、导入模块 import sys //导入sys模块 4、捕获参数 捕获参数,并存入到集合 import sys.argv 比如:test内容如下 : 1 #vim test.py 2 3 #!/usr/bin/env python 4 # -*- coding:utf-8 -*- 5 import sys 6 print sys.argv 执行代码: zx@ubuntu:~$ ./test.py localhost:8001 执行结果:

1.python数据类型详解

只谈情不闲聊 提交于 2020-02-13 00:42:12
python 数据类型分类 1). 数值型: 整数型(int)、浮点型(float)、布尔型(bool 取值:True、False) 2). 容器类型 : 字符串型(str)、列表(list)、元祖(tuple)、字典(dict)、集合(set) 3).自定义类型: Person、Animal、Dog、Cat、Student... 4).NoneType: None (理解:不存在、未明确的、未知的) 一. 字符串类型(str) 特点:属于容器类型之一,满足有序的(有索引)、可重复的、不可变的数据类型(不可变:指字符串中某个位置的元素不允许改变,但是可以将整个字符串变量中的地址进行改 变(意味着将字符串完全覆盖掉)) 1. 自定义打印效果的显示 使用:""" ... """ 或者 ''' ... ''' 来定义字符串数据,对于有些情况下,需要对定义的字符数据进行显示样式的把控,可以使用如下的方式定义字符串数据,可以做到换 行 的效果 1 content = """遥想公瑾当年,小乔出嫁了! 2        雄姿英发,羽扇纶巾, 3        谈笑间,樯橹灰飞烟灭""" 4 content1 = '''遥想公瑾当年,小乔出嫁了! 5        雄姿英发,羽扇纶巾, 6        谈笑间,樯橹灰飞烟灭''' 7 print(content) 8 print