列表是最通用的Python复合数据类型,列表中包含以逗号分隔,并在方括号([])包含的项目。

在一定程度上,列表相似C语言中的数组,它们之间的一个区别是,所有属于一个列表中的项目可以是不同的数据类型的。

存储在一个列表中的值可以使用切片(分片)操作符来访问([]和[:])用索引从0开始,使用负数索引时,Python会从右边开始计数(-1指的是序列最右边的元素)。

加号(+)符号列表连接运算符,星号(*)重复操作。

list = ['abcd', 123, 2.23, 'Ethon']
tinylist = [123,'wakey']
print list
print list[0]
print list[1:3]
print list[2:]
print tinylist * 2
print list + tinylist

产生已下结果:

分片:与使用索引来访问单个元素类似,可以使用分片操作来完成一定范围内的元素,分片通过冒号相隔的两个索引来实现。第一个索引的元素是包含在分片内的,而第二个则不包含(这是Python的惯例)。

>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[0:8:2] #步长为2,每隔一个元素
[1, 3, 5, 7]
>>> numbers[8:3:-1] #步长为-1,即从右到左提取元素
[9, 8, 7, 6, 5]
-1表示切片要倒着切,且是一个字符一个字符地切.
8表示从左边0开始计数的8位置上的数,9
3表示从左边0开始计数的3位置上的数,4,但不包括它,所以是只截到5
>>> numbers[6:-1] #从最6个数到倒数第1个数 [7, 8] >>> numbers[:] #索引为空,复制整个序列 [1, 2, 3, 4, 5, 6, 7, 8, 9]

成员资格:为了检查一个元素是否在序列中,可以使用 in 运算符

>>> name = 'Ethon'
>>> 'E' in name
True
>>> 'A' in name
False

长度、最小值、最大值

>>> numbers = [100,25,37]
>>> len(numbers)
3
>>> min(numbers)
25
>>> max(numbers)
100

列表操作

1、改变列表,元素赋值

>>> x = [1,1,1]
>>> x[0]=2
>>> x
[2, 1, 1]

2、删除元素

>>> names= ['Ethon','joho','wakey']
>>> del names[1]
>>> names
['Ethon', 'wakey']

3、分片赋值

>>> name = list('Ethon')
>>> name
['E', 't', 'h', 'o', 'n']
>>> name[2:]
['h', 'o', 'n']
>>> name[2:] = list('abc')
>>> name
['E', 't', 'a', 'b', 'c']

列表方法:方法是一个与某些对象有紧密联系的的函数,对象可能是列表,数字,也可能是字符串或其他类型的对象。

方法可以这样进行调用:  对象.方法(参数)

1、append  在列表末尾添加新的对象

>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

2、count   统计某个元素出现的次数

>>> name = ['Ethon','wakey','wakey','joho']
>>> name.count('wakey')
2

3、extend  在列表的末尾一次性追加另一个序列中的值

>>> a = [1,2,3]; b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

4、index  在列表中找个某个值第一个匹配项的索引位置

>>> name = ['Ethon','wakey','joho','Misi']
>>> name.index('joho')
2

5、insert  将对像插入到列表中

>>> numbers = [1,2,3,4,5]
>>> numbers.insert(3,'Ethon')
>>> numbers
[1, 2, 3, 'Ethon', 4, 5]

6、pop  移除列表中的一个元素(默认是第后一个元素)

pop方法是唯一一个既能修改列表,又能返回元素值的列表方法

>>> x = [1,2,3,4]
>>> x.pop()
4
>>> x
[1, 2, 3]

7、remove  移除列表中某个值的第一个匹配项

>>> name = ['joho','wakey','Ethon','misi','wakey']
>>> name.remove('wakey')
>>> name
['joho', 'Ethon', 'misi', 'wakey']

8、reverse   将列表中的元素反向存放

>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

9、sort  在原位置对列表进行排序(改变原来的列表)

>>> x = [3,1,6,5,4]
>>> x.sort()
>>> x
[1, 3, 4, 5, 6]

当用户需要一个排序后的列表副本,又不想改变原来的列表时,可以用以下方法:

>>> x = [3,1,6,5,4]
>>> y = x[:]
>>> y.sort() #将x的副本赋值给y,然后对y进行排序
>>> x
[3, 1, 6, 5, 4]
>>> y
[1, 3, 4, 5, 6]

或使用 sorted 函数

>>> x = [3,1,6,5,4]
>>> y=sorted(x)
>>> x
[3, 1, 6, 5, 4]
>>> y
[1, 3, 4, 5, 6]

python学习笔记4(列表)的更多相关文章

  1. python学习笔记整理——列表

    Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...

  2. python学习笔记-列表和字典

    由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...

  3. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

  4. Python学习笔记4—列表

    列表定义 >>> a=['] >>> type(a) <type 'list'> >>> bool(a) #列表有值,则为true T ...

  5. python学习笔记之列表与元组

    一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修 ...

  6. Python学习笔记(1)-列表

    列表是什么? 列表由一系列按特定顺序排列的元素组成.列表看起来像这样:[1,2,3,4,1].在列表中,可以由零个或多个元素组成,元素之间用逗号分开,具有相同值元素允许出现多次 使用[ ]或list( ...

  7. Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码

    一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...

  8. Python学习笔记4—列表List

    列表定义 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. >>> a=['] >>> type(a) &l ...

  9. python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...

  10. python学习笔记(三)-列表&字典

    列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...

随机推荐

  1. [改善Java代码]优先选择线程池

    在Java1.5之前,实现多线程编程比较麻烦,需要自己启动线程,并关注同步资源,防止线程死锁等问题,在1.5版本之后引入了并行计算框架,大大简化了多线程开发. 我们知道线程有5个状态:新建状态(New ...

  2. Wince 设备环境和画笔应用

    本文主要讲到的是画笔应用,在Wince -06环境下,画笔应用很广泛,很有技巧,这里笔者要着重介绍. 设备环境可以用一下图表示,主要是让大家大致了解Wince -06的设备环境,下面在图形舍虚设计中会 ...

  3. linux进程间通信概述

    一个大型的应用系统,往往需要众多进程协作,进程间通信的重要性显而易见. 进程间通信有如下一些目的: 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间. 共享数据: ...

  4. 导出Private API

    首先介绍下private API 它共分为两类: 1 在官方文档中没有呈现的API(在frameworks 下隐藏) 2 苹果明确申明不能使用的API ,在privateFrameworks 下 然后 ...

  5. asp.net运行原理(一)总体概要

     1.浏览器发送请求报文到服务器,服务器接收到请求之后,根据请求报文头(url地址)的后缀名解析. 2.以iis服务器为例.他分为两种模式,经典模式和集成模式.主要是经典模式会将请求报文通过aspne ...

  6. BUG修改纪录

    刚进入现在的公司,接手了一个遗留的项目,BUG频出,最近一个星期都在加班改BUG,身心疲惫,为了 现在,将来不会再被相同BUG困扰,特来纪录一下. 1.数据库设计字段时,对于int等类型最好设置默认值 ...

  7. Crontab使用mailx的一点发现

    要用到Crontab定时任务去执行一个Shell脚本监控Linux系统资源并且当一些数字超过预设的话发送邮件警告.首先是linux的sendmail功能无法满足我们使用SMTP服务器并且指定发送者(E ...

  8. 第十二篇、Swift_Sqlite的使用

    import UIKit class SQLiteManager: NSObject { private static let manager: SQLiteManager = SQLiteManag ...

  9. Cocos开发中Visual Studio下libcurl库开发环境设置

    我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...

  10. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1

    技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] 第 3 章 用 JavaScri ...