1.Python 列表(List)

  • 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
  • Python有6个序列的内置类型,但最常见的是列表和元组。
  • 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
  • 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
  • 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同的类型

1.1创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['python', 'java', 2016, 2000];

list2 = [1, 2, 3, 4, 5 ];

list3 = ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

1.2访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符

示例1:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "python", 2016, 2000]
list2 = [1, 2, 3, 4]
list3 = ["a", "b", "c", "d"]

print "list1[0]", list1[0]
print "list2[:3]", list3[:3]
print "list3[0:]", list3[0:]

示例1 运行结果:

list1[0] python
list2[:3] ['a', 'b', 'c']
list3[0:] ['a', 'b', 'c', 'd']

这里还要提到跟访问列表相关的一个概念——切片

什么是切片?

字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想像成一个队列,我可能需要前面三位、后面三位、或从第三位后的四位、或隔一个取一个等,我们用切片操作符来实现上述要求。

切片操作符在python中的原型是

[start:stop:step]

即:[开始索引:结束索引:步长值]

  • 开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
  • 结束索引:切片操作符将取到该索引为止,不包含该索引的值。
  • 步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0

示例2:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "python", 2016, 2000]
print "list1[0]", list1[0:2:3]

示例2 运行结果:

list1[0] ['python']

1.3更新列表

你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项

示例3:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "python", 2016, 2000]
print "索引为2的项:", list1[2]
list1[2] = 2017
print "索引为2的项赋值后:", list1[2]

示例3 运行结果:

索引为2的项: 2016
索引为2的项赋值后: 2017

注意:我们会在接下来的章节讨论append()方法的使用

1.4 删除列表元素

可以使用 del 语句来删除列表的的元素

示例4

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "java", 2016, 2000]
print "打印list1:", list1
del list1[1]
print "删除list1索引为1的项后:", list1

示例4 运行结果:

打印list1: ['python', 'java', 2016, 2000]
删除list1索引为1的项后: ['python', 2016, 2000]

注意:我们会在接下来的章节讨论remove()方法的使用

2. Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

如下所示:

Python 表达式

结果

描述

len([1, 2, 3])

3

长度

[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

组合

['Hi!'] * 4

['Hi!', 'Hi!', 'Hi!', 'Hi!']

重复

3 in [1, 2, 3]

True

元素是否存在于列表中

for x in [1, 2, 3]: print x,

1 2 3

迭代

3.Python列表截取

Python的列表截取与字符串操作类型,如下所示:

L = ['spam', 'Spam', 'SPAM!']

操作:

Python 表达式

结果

描述

L[2]

'SPAM!'

读取列表中第三个元素

L[-2]

'Spam'

读取列表中倒数第二个元素

L[1:]

['Spam', 'SPAM!']

从第二个元素开始截取列表

4.Python列表函数&方法

4.1 函数

  (1).比较两个列表的元素:cmp(list1, list2)

    例如: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "java", 2016, 2000]
list2 = ["python", "java", 2016, 2000]
list3 = [1, 2, 3]
var1 = cmp(list1, list2)
var2 = cmp(list1, list3)
print "list1 和 list2 比较结果:", var1
print "list1 和 list3 比较结果:", var2

以上结果:

list1 和 list2 比较结果: 0
list1 和 list3 比较结果: 1

  (2). 元素个数:len(list)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "java", 2016, 2000]
list2 = ["python", "java", 2016, 2000]
list3 = [1, 2, 3]
var1 = len(list1)
var2 = len(list3)
print "list1 长度:", var1
print "list3 长度:", var2

以上示例运行结果:

list1 长度: 4
list3 长度: 3

  (3). 返回列表最大值:max(list)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "java", 2016, 2000]
list2 = ["python", "java", 2016, 2000]
list3 = [1, 2, 3]
var1 = max(list1)
var2 = max(list3)
print "list1 最大值:", var1
print "list3 最大值:", var2

以上示例运行结果

list1 长度: python
list3 长度: 3

注:List1 中的结果是按照 asc码表排列的,数字在大写字母前面,大写字母在小写字母前面,大家可以参照asc码表

  (4).返回列表最小值:min(list)

  这个和最大值原理相同,就不列举了。

4.2方法

序号 方法
1 list.append(obj)
在列表末尾添加新的对象
2 list.count(obj)
统计某个元素在列表中出现的次数
3 list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4 list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5 list.insert(index, obj)
将对象插入列表
6 list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7 list.remove(obj)
移除列表中某个值的第一个匹配项
8 list.reverse()
反向列表中元素
9 list.sort([func])

remove,index,append 方法的练习:

示例5:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2016/9/11 10:10
# @Author  : wwyx
list1 = ["python", "java", 2016, 2000]
list2 = ["python", "java", 2016, 2000]
list3 = [1, 2, 3]
list1.remove("java")
list3.append(4)
print "list1 调用remove 方法:", list1
print "list3 调用append 方法:", list3
print "list3 根据索引查询:", list3.index(2)

示例5 运行结果:

list1 调用remove 方法: ['python', 2016, 2000]
list3 调用append 方法: [1, 2, 3, 4]
list3 根据索引查询: 1

好了,列表部分就到这里!

python之最强王者(6)——列表(List)的更多相关文章

  1. python之最强王者(9)——函数

    1.Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但 ...

  2. python之最强王者(10)———文件(File)、输入输出的基本操作

    1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...

  3. python之最强王者(8)——字典(dictionary)

    1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...

  4. python之最强王者(7)——元组(tuple)

    1.序列(sequence): 说明:在前面的字符串列表中其实我们已经用到了序列,之所以放到这篇来讲主要是为了承上启下,方便理解和记忆. python的数据访问模型:直接存取 ,序列 ,映射 对非容器 ...

  5. python之最强王者(5)——Nunber(数字)

    1.Python Number(数字) Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. 以下实例在变量 ...

  6. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

  7. python之最强王者(1)——python入门简介

    1.Python简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Pe ...

  8. python之最强王者(11)——异常(exception)

    1.Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. ...

  9. python之最强王者(4)——字符串

    1.Python 中文编码 前面章节中我们已经学会了如何用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界" ...

随机推荐

  1. java面向对象中的关键字

    1,super关键字 super:父类的意思 1. super.属性名 (调用父类的属性) 2. super.方法名 (调用父类的方法) 3. super([参数列表])(调用父类的构造方法) 注意: ...

  2. 【SAP业务模式】之ICS(一):业务详述

    PS:本专题系列讲述如何在SAP系统中实现ICS的业务模式,本系列博文系原创,如要转载引用,请保持原文一致并注明出处! SAP系统自身功能非常强大,支持多种业务模式,通过前台后台的配置就可以实现多种效 ...

  3. NOIP模板整理计划

    先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...

  4. [斜率优化DP]【学习笔记】【更新中】

    参考资料: 1.元旦集训的课件已经很好了 http://files.cnblogs.com/files/candy99/dp.pdf 2.http://www.cnblogs.com/MashiroS ...

  5. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...

  6. APP并非一个人在战斗,还有API—Xamarin.Android回忆录

    前言 一般来说,一个客户端APP并非独立存在的,很多时候需要与服务器交互.大体可分为两方面的数据,常规字符串数据和文件数据,因为这两种数据很可能传输方式不一样,比如字符串之类的数据,使用HTTP协议, ...

  7. CSharpGL(12)用T4模板生成CSSL及其renderer代码

    CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...

  8. Android Studio 轻松整理字符串到string.xml中

    昨天了解了Alt+Enter快捷键的大用处,今天又发现了一个快捷的方法,必须记下来.转载请注明出处http://www.cnblogs.com/LT5505/p/5466630.html 1.首先代码 ...

  9. MailKit---状态更改和删除

    当我们拉取邮件列表,并展示邮件后需要打开邮件,同时标识本邮件状态为已读状态,或者我们直接删除邮件.下面介绍基本的应用. 首先了解邮件的所有枚举状态:MailKit.MessageFlags包括:(No ...

  10. PDO概念 分析 练习

    PDO 翻译过来叫做数据访问抽象层 它是一个数据访问的层面,实际上是一个类,也就是说所有操作数据库的代码,都是通过这个层面完成的 该图好理解大概就是这样一种模式 现在考虑的是能不能使用同一个类,上层代 ...