列表:处理一组有序项目的数据结构
一、基本操作
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. 2018.11.7 Nescafe29 T1 穿越七色虹

    题目 题目背景 在 Nescafe27 和 28 中,讲述了一支探险队前往 Nescafe 之塔探险的故事…… 当两位探险队员以最快的时间把礼物放到每个木箱里之后,精灵们变身为一缕缕金带似的光,簇簇光 ...

  2. 自封装的AJAX

    /* * *create by royal in 2019/1/23 * *royalAjax 自封装ajax函数 * *paramsObj JSON类型参数 *require params: * t ...

  3. Java读取各种文件格式内容

    所需的jar包哦也不要太记得了,大家可以搜搜,直接上代码: import java.io.BufferedInputStream; import java.io.File; import java.i ...

  4. read指令使用方法

    read命令用于从标准输入中读取输入单行,并将读取的单行根据IFS变量分裂成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name.第一个字段分配给第一个变量var_name1,第二个字段 ...

  5. __setitem__,__getitem,__delitem__的作用

    class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('obj[key]时, ...

  6. Android Shader渲染器:BitmapShader图片渲染

    public class BitmapShader extends Shader BitmapShader,  Shader家族的 专门处理图片渲染的 构造方法: public BitmapShade ...

  7. Jconsole连接Tomcat JVM

    修改java虚拟机启动参数 在%TOMCAT_HOME%\bin\catalina.sh文件的最顶端 JAVA_OPTS=”-Dcom.sun.management.jmxremote.port=10 ...

  8. Codeforces 653G Move by Prime 组合数学

    题意: 有一个长度为\(n\)的正整数序列\(a\),有这样一种操作: 每次可以选序列中的某一个数乘上或除以某一个素数. 求对于每一个子序列使其所有元素相等的最少操作次数之和. 分析: 因为两个素数之 ...

  9. 53、listview、expandableListview如何选中时保持高亮?

    一.listView被选中后保持高亮 70down voteaccepted To hold the color of listview item when you press it, include ...

  10. 微服务学习笔记——Spring Boot特性

    1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 开 ...