列表:处理一组有序项目的数据结构
一、基本操作
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)数据结构------列表
一.数字的处理函数 (一)int() 取整数部分,与正负号无关,举例如下: print(int(-3.6), int(-2.5), int(-1.4)) print(int(3.6), int(2.5 ...
- Python常见数据结构--列表
列表 Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片.加.乘.检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最下的元素的方法. ...
- Python基本数据结构--列表
列表: 1.有序的集合: 2.通过偏移来索引,从而读取数据: 3.支持嵌套: 4.可变的类型: 列表的操作: 1.切片: a = [1,2,3,4,5,6,7] 正向索引 反向索引 默认索引 2.添加 ...
- Python笔记——基本数据结构:列表、元组及字典
转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...
- Python常用数据结构(列表)
Python中常用的数据结构有序列(如列表,元组,字符串),映射(如字典)以及集合(set),是主要的三类容器 内容 序列的基本概念 列表的概念和用法 元组的概念和用法 字典的概念和用法 各类型之间的 ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- Python学习02 列表 List
Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- Python 迭代器和列表解析
Python 迭代器和列表解析 1)迭代器 一种特殊的数据结构,以对象形式存在 >>> i1 = l1.__iter__() >>> i1 = iter(l1) 可 ...
随机推荐
- 巧妙使用JQuery Clone 添加多行数据,并更新到数据库
WEB代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BatchAdd. ...
- 20180909 解析JS Cookie的设置,获取和检索
引用: JavaScript Cookie - by runoob.com Cookie是储存在电脑文本文件中的数据,用于保存访问者的信息,并可以在下次打开页面时引用. 页面在设置/引用访问者信息时, ...
- 51nod——2487小b和环
dp[ i ][ 0 ] : 第i个位置不取 dp[ i ][ 1 ] : 第i个位置取 这样就可以得到状态转移方程: dp[i][0]=max(max(dp[i][0],dp[i-1][1]),dp ...
- JDK和CGLIB动态代理原理区别
JDK和CGLIB动态代理原理区别 https://blog.csdn.net/yhl_jxy/article/details/80635012 2018年06月09日 18:34:17 阅读数:65 ...
- python 进度条 打印
- 第三篇:彻底解决ssh.invoke_shell() 返回的中文问题
接上一篇,前两篇解决中文的问题主要是在字符集上做的手脚,即将中文转成英文,但是有一种情况我们都来不及做转换,即登录时服务器直接返回了中文内容: 此时程序报了如下错误,其实还是字符集问题: 为此:我们可 ...
- 闯越自动签到demo版补充说明
demo代码:https://www.cnblogs.com/canmeng/p/11000548.html 定位出错是由于cookie 我重新登录账号过,cookies的值就变了 当时没注意cook ...
- Pychram基本操作
1. 更改pychram页面为黑色背景主题.更改主题: File ->Settings -> Editor -> Color Scheme -> Scheme -> Mo ...
- stm32串口——标志位学习
/* 在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器,另一个是程序看不到的移位寄存器,对应USART数据发送有两个标志,一个是TXE=发送数据寄存器空,另一个是TC=发送 ...
- Postgres安装详解
PG安装 一.基础包的安装(yum源的配置,可以采用光盘挂载,及ftp yum源,针对外网环境忽略此步): yum -y install wget tcpdump glibc libgcc gcc g ...