列表高级操作

一、遍历列表

>>> ls=['a','d','it']
>>> for val in ls:
... print (val)
...
a
d
it

for后面是个冒号,for循环体行首是四个空格,对于python中所有的缩进,都使用四个空格,如果使用编辑器,为了方便,大家可能会使用Tab制表符代替空格,但要设置Tab制表符用四个空格替换,一般编辑器都会有这个功能。

二、创建数值列表

1、使用range方法几乎可以创建任何形式的数值列表,一个简单的示例如下:

>>> for val in range(,):
... print (val)
...

range方法包前不包后,这和很多编程语言的方法类似。

2、虽然上述示例,直接循环可获取到range分配的每个列表中的元素值,但不能将range(1,5)直接赋值给一个变量,需要使用list方法进行转换

直接将range(1,5)赋值给一个变量,输出的结果并非我们想要的列表

>>> myls=range(,)
>>> myls
range(, )

使用lsit转换成列表

>>> myls=list(range(,))
>>> myls
[, , , ]

3、使用range也可以指定步长,如生成一个等差为3的等差列表

>>> eqdiffls=list(range(,,))
>>> eqdiffls
[, , , , , , , , , , , , , , , , ]

三、列表简单统计计算,如获取最大值,最小值,求和等

>>> countls=list(range(,))
>>> countls
[, , , , , , , , ]
>>> min(countls) >>> max(countls) >>> sum(countls)

四、列表解析

首先明确一下,python中计算平方的格式为val**2,如果要计算2的3次幂可以写成2**3

>>> **

>>> **

如果要生成一组数的平方值的集合,我们可能需要这么做,如1到4的平方值的列表

>>> squarels=[]
>>> for val in range(,):
... squarels.append(val**)
...
>>> squarels
[, , , ]

这种方式生成的列表需要四行,有一种方式通过一行代码就可以生成上述所需的列表,这种方式就是列表解析。

>>> del squarels
>>> squarels=[val** for val in range(,)]
>>> squarels
[, , , ]

五、列表切片

格式为:list[startIndex:endIndex],同样属于包前不包后操作,切片生成了一个新的列表,但不会对之前的列表元素有任何影响

>>> squarels
[, , , ]
>>> squarels[:]
[, ]

从某个索引位置截取到列表结束位置

>>> squarels[:]
[, ]

从开始位置截取到某个位置

>>> squarels[:]
[, ]

如果startIndex和endIndex都不输入,则相当于复制了一个列表

>>> squarels[:]
[, , , ]

列表复制也可使用copy方法,代码更易阅读

>>> squarels.copy()
[, , , ]

遍历切片,和遍历列表方法一样

>>> for val in squarels[:]:
... print (val)
...

元组

元组比较简单,与列表的区别是,初始化时使用小括号(),列表初始化使用中括号[];元组中的元素不能修改,列表中的元素允许修改

一、元组的初始化

元组使用小括号()进行初始化

>>> tup=()
>>> tup=(,,)

二、遍历,与列表一致

>>> for val in tup:
... print (val)
...

三、不能修改元组中变量,修改则报错

>>> tup[]=
Traceback (most recent call last):
File "<stdin>", line , in <module>
TypeError: 'tuple' object does not support item assignment

四。虽然元组中元素不允许修改,但元组本身允许修改

>>> tup=()
>>> tup=(,)
>>>

Python中列表操作进阶及元组的更多相关文章

  1. Python中列表操作函数append的浅拷贝问题

    L=int(input())#L位数N=int(input())#N进制row=[]list1=[]for i in range(1,N): row.append(1)list1.append(row ...

  2. python中列表和元组以及字符串的操作

    python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...

  3. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  4. python MySQLdb用法,python中cursor操作数据库(转)

    数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_N ...

  5. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  6. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  7. Neo4j:图数据库GraphDB(四)Python中的操作

    本文总结下Python中如何操作Neo4j数据库,用到py2neo包,Pip install 一下. 1 连接neo4j数据库:跟其它数据库一样,操作前必须输入用户名和密码及地址连接一下. from ...

  8. python中列表元素连接方法join用法实例

    python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...

  9. 对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    引用:https://www.jb51.net/article/142775.htm 列表赋值: 1 2 3 4 5 6 7 >>> a = [1, 2, 3] >>&g ...

随机推荐

  1. Sql Server 导出数据库表结构的SQL查询语句

    --导出数据库所有表 SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colo ...

  2. js 的一些小技巧

    来源:https://www.w3cplus.com/javascript/javascript-tips.html 1.确保数组的长度 在处理网格结构时,如果原始数据每行的长度不相等,就需要重新创建 ...

  3. element-ui 中日期控件限制时间跨度

    支持点击今天及之前任意日期,前后跨度不超过31天,且不超过今天 <el-date-picker v-model="searchForm.dateRange" type=&qu ...

  4. Java高并发程序设计学习笔记(七):并行设计模式

    转自:https://blog.csdn.net/dataiyangu/article/details/87123586 什么是设计模式架构模式设计模式代码模式(成例 Idiom)单例模式普通单例假如 ...

  5. vlan linux内核数据流程

    转:http://blog.sina.com.cn/s/blog_62bbc49c0100fs0n.html 一.前言 前几天做协议划分vlan的时候看了一些linux内核,了解不深,整理了下vlan ...

  6. Java SE 核心 II【Collection 集合框架】

    Collection集合框架 在实际开发中,需要将使用的对象存储于特定数据结构的容器中.而 JDK 提供了这样的容器——集合框架,集合框架中包含了一系列不同数据结构(线性表.查找表)的实现类.集合的引 ...

  7. NFS +inotify+rsync 实现数据的远程挂载与实时增量备份

    NFS 网络文件系统 功能: 用户可以像访问自己的本地文件系统一样使用网络中的远端系统上的文件 原理: 用户进程-->RPC服务(portman)-->tcp/ip协议栈-->远端主 ...

  8. Redis07-Redis单节点容量问题,twemproxy,predixy的使用

    Redis单节点容量问题 一.单节点容量问题 我们在实际场景中,往往遇上一个单节点容量问题. 1.进行业务拆分,数据分类 2.到了数据不能拆分的时候,可以进行数据分片 进行哈希取模(影响分布式下的扩展 ...

  9. JMeter 控件整理

    一个线程组里多个请求的情况下,添加用户参数.如添加random函数,若不勾选“每次迭代更新一次”则每发送一个请求调用一次random函数,勾选上之后,整个线程组运行过程只调用一次random函数.

  10. std::map 的swap错用

    map<int, shared_ptr<int>>map_test; shared_ptr<); map_test[] = tmp_1; shared_ptr<); ...