列表:处理一组有序项目的数据结构
一、基本操作
1、列表运算符
list1=[2,3,4,5,6,7,8]
print len(list1)
print [1,2]+[3,4]
print ['Hi']*4
print 4 in list1
for i in list1:
print i
list2=list1
list3=list1[:]
print list2 is list1 TRUE
print list3 is list1 FALSE
shoplist = ['apple','mongo','carrot','banana']
 
2、新增元素
shoplist.append('rice')
print u'新购物清单',shoplist
结果:新购物清单 ['apple', 'mongo', 'carrot', 'banana', 'rice']
 
3、删除一个元素
list1=[1,2,3,4,5,6,7]
list1.remove(3) 值操作,没有返回值
del list1[2] 下标操作
list1.pop(2) 下标操作,有返回值
 
4、比较两个列表中的元素是否相等
cmp(list1,list2)
1,0,-1 返回值
list1 == list2
str(list1) == str(list2)
 
5、取出列表中的最大元素:两种方法
max(list1)
list1.sort() list1[-1]
 
6、插入一个元素
list1.insert(2,1024) 在下标是2的位置插入1024元素
 
7、合并列表
listA=[1,2,3]
listB=[9,4,5]
listA.extend(listB)
或者 listA = listA+listB
print listA
结果:[1, 2, 3, 9, 4, 5]
 
8、二维列表
listC=[[1,2,3],[21,22,23]]
print u'第一个元素',listC[0]
print u'第一个元素',listC[0][0]
结果:
第一个元素 [1, 2, 3]
第一个元素 1
 
9、统计列表[1,2,3,4,5,6,3,4,5,6,3]中3出现的次数,不少于两种方法
list1.count(3)
sum=0
for i in list1:
if i == 3:
sum +=1
print sum
 
10、判断某个变量是否属于某一类
if isinstance(listC,list):
print‘ok’
结果:ok
或者:if type(listC) == list:
 
11、反转列表
list1=list(reversed(list1))
list1.reverse() 直接修改了list1,不需要再给list1赋值
list1=list1[::-1]
 
获取元素的下标
list1.index(454)
for i in xrange(len(list1)):
if list1[i] == 454:
print i
break
二、高级应用
1、切片
说明:
listA[startponit : endPonit :step(步长)],切片之后得到一个新的列表
startPoint:endPoint 前闭后开
 
(1)切片操作,非常重要
listA=[1,2,3,4,5,6]
 
print listA[0:4]
结果:[1, 2, 3, 4]
 
print listA[0:4:2]
结果:[1, 3]
 
(2)步长为负数, 实现逆序输出
print listA[::-1]
结果:[6, 5, 4, 3, 2, 1]
 
2、列表变为字符串
listB=['a','b','c']
print ''.join(listB)
结果:abc
 
3、列表生成器
(1)第一种 range(a:b:c)
list1=range(10)
print list1
结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
list2=range(2,10)
print list2
结果:[2, 3, 4, 5, 6, 7, 8, 9]
 
list3=range(2,10,2)
print list3
结果:[2, 4, 6, 8]
 
(2)第二种
list4=[x*x for x in range(10)]
print list4
结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 
list3 = [m+n for m in 'ABC' for n in 'XYZ']
结果:AX,AY,AZ,BX,BY,BZ,CX,CY,CZ
 
list1 = [1,2,3,4]
list2 = [2*i for i in list1 if i>2]
 
list3 = [m+n for m in 'ABC' for n in 'XYZ']
 
dict4 ={'x':'A','y':'b','z':'C'}
list4 = [k+'='+v for k,v in dict4.items()]
 
L = ['Hello','World','IBM','Apple']
list5 = [s.lower() for s in L]
 
4、sort()方法 排序
sort(cmp=None,key=None,reverse=False)
cmp:默认通过ascii值比较,可定义使用其他的值进行比较
cmp:为一个定制的比较函数,接受两个参数,并且如果第一个参数小于第二个参数,则返回一个负数,大于则返回一个整数,等则返回0。默认值为None。
key:默认列表中的一个元素。通过什么去比较,可以自定义函数 key的使用场景比较多
reverse:默认升序,reverse=True,逆序
eg:
list1=[(1,5,3),(1,1,2,3,4),(1,6)]
def L(tup):
return len(tup)
list1.sort(key=L,reverse=True)
print list1
 
eg:list1 = [(-1,5,3),(-5,3,6,3),(1,1,2,4,5,6),(2,9),(-2,10)],使用元组的第一个元素大小比较来实现 list 的排序,逆序排列。
list1 = [(-1,5,3),(-5,3,6,3),(1,1,2,4,5,6),(2,9),(-2,10)]
def L(tup):
return abs(tup[0])
list1.sort(cmp=cmp,key=L,reverse=True)
print list1
 
 

Python之数据结构:列表的更多相关文章

  1. (python)数据结构------列表

    一.数字的处理函数 (一)int() 取整数部分,与正负号无关,举例如下: print(int(-3.6), int(-2.5), int(-1.4)) print(int(3.6), int(2.5 ...

  2. Python常见数据结构--列表

       列表 Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片.加.乘.检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最下的元素的方法. ...

  3. Python基本数据结构--列表

    列表: 1.有序的集合: 2.通过偏移来索引,从而读取数据: 3.支持嵌套: 4.可变的类型: 列表的操作: 1.切片: a = [1,2,3,4,5,6,7] 正向索引 反向索引 默认索引 2.添加 ...

  4. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  5. Python常用数据结构(列表)

    Python中常用的数据结构有序列(如列表,元组,字符串),映射(如字典)以及集合(set),是主要的三类容器 内容 序列的基本概念 列表的概念和用法 元组的概念和用法 字典的概念和用法 各类型之间的 ...

  6. [转载]Python 元组、列表、字典、文件

    python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...

  7. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  8. [0x00 用Python讲解数据结构与算法] 概览

    自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...

  9. 第三章 Python容器:列表、元组、字典与集合

      数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...

  10. Python 迭代器和列表解析

    Python 迭代器和列表解析 1)迭代器 一种特殊的数据结构,以对象形式存在 >>> i1 = l1.__iter__() >>> i1 = iter(l1) 可 ...

随机推荐

  1. Servlet 学习小结

    一.是什么 是用java编写的服务器端程序.从狭义来讲,servlet是java语言实现的一个接口:广义的servlet是指任何实现了这个servlet接口的类.一般情况下,人们将servlet理解为 ...

  2. C语言正整数除法向上取整

    在网上发现一个简单的向上取整方法: 这里我们用<>表示向上取整,[]表示向下取整,那么怎么来表示这个值呢? 我们可以证明: <N/M>=[(N-1)/M]+1    (0< ...

  3. 数据库sql语句的exists和in的区别

    性能变化的关键: #1 执行的先后顺序 谁是驱动表,谁先执行查询,谁后执行查询 #2 执行过程 exists的优点是:只要存在就返回了,这样的话很有可能不需要扫描整个表.   in需要扫描完整个表,并 ...

  4. 【Django】Django中的模糊查询以及Q对象的简单使用

    Django中的模糊查询: 需要做一个查找的功能,所以需要使用到模糊查询. 使用方法是:字段名加上双下划线跟上contains或者icontains,icontains和contains表示是否区分大 ...

  5. 九、Linux 磁盘管理

    Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fd ...

  6. Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  7. 16.VUE学习之-v-show的使用与v-if的差异对比

    v-show的使用与v-if的差异对比 相同点: 都可以达到隐藏和显示的效果. 不同点: v-show 会用display:none 来隐藏元素节点,推荐使用这种方式 v-if 会移除节点,可以配合v ...

  8. 使用python实现滑动验证码

    首先安装一个需要用到的模块 pip install social-auth-app-django 安装完后在终端输入pip list会看到 social-auth-app-django social- ...

  9. (转)CocoaPods

    本文转自http://nshipster.cn/cocoapods/ 文明是建立在道路,桥梁,运河,下水道,管线,电线和光纤这些基础设施之上的.只要设计和施工得当,它们可以帮助社会成倍的发展. 唯一的 ...

  10. stm32-IIC读写EEPROM—时序说明

    I2C 通讯协议:(Inter-Integrated Circuit)是由Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART.CAN  等通讯协议的外部收发设备,现在 ...