Python 列表?

Python031

Python 列表?,第1张

是不是这个list让你感觉有些困扰呢,你看一下我下面的表示方式:

你的list和我的abc都是表示一个列表名。

del abc[1]:调用系统方法del,删除列表abc中索引为1的项;

abc.pop():调用列表(这里为abc)本身的方法pop(),删除abc列表的最后一项。

abc[1]中用方括号是列表的索引操作,为列表自身的规则;pop()中也可以传入参数用于表示索引位置,但此处为向方法内传入位置参数。

方法来源不一样,使用规则有差别。

python循环添加列表_Python列表与循环体

列表

列表是Python⾥最为常见、常使⽤的⼀种集合类,前述集合⼀章⾥给出了集合的定义和意图,即⼀堆数据⽤特定的符号整合起来视为⼀个整体,Python的列表List所使⽤的特殊集合符号为⽅括号,⽤逗号(,)间隔每个元素(元素类型可以不同)。列表是有序且可修改的集合类型。本章将围绕列表的基本概念、创建、使⽤展开,以及和列表相关的函数。

创建列表

列表有⼏个基本特征,第⼀是⽤⽅括号括起来、⽤逗号间隔;第⼆是列表⾥的元素类型可以相同或不同;第三列表可变可修改,长度可变内容可变。

创建或声明⼀个列表,(1)可以依据列表的定义⽤⽅括号括起来、⽤逗号间隔的形式创建,例如下边的a和b这两个列表。

a = [1, 2, 3]print a

b = [12, 13.5, 'h']print b

程序执⾏结果如下:

[1, 2, 3]

[12, 13.5, 'h']

从程序的执⾏结果可以得到验证列表内的各个元素的类型可以不相同。

也可以通过list()函数将某些数据类型转化为列表。

s = "hello"

a = list(s)print a

程序执⾏结果如下:

['h', 'e', 'l', 'l', 'o']

这个列表⾥的每个元素都是字符。

列表元素的访问

列表是有序的,每个元素都有⼀个位置坐标⽤index表⽰,在Python可以通过index访问列表的某位置上的数据值,当然也可修改该位置上的数据值。

访问某位置数据的语法格式

列表名[index]

假设列表的元素个数(即列表的长度)为n,那么列表各个元素的位置index从左向右(正向)依次为0、1、2....、n-1。从右向左(负⽅向)依次为-1、-2、... -n。

下⾯以基于“python”字符串构建出的列表为例

s = "python"print s

a = list(s)print a

程序的执⾏结果为:

python

['p', 'y', 't', 'h', 'o', 'n']

s为字符串"python",⽽a为列表。a⾥的各个元素的index位置信息如下图所⽰。

对于列表a⾥的元素't'的正向坐标为2,负向坐标为-4。

s = "python"print s

a = list(s)print aprint a[2], a[-4]

程序的执⾏结果如下所⽰:

python

['p', 'y', 't', 'h', 'o', 'n']

t t

修改某位置的数据的语法格式

列表名[index] = 新值

举例:将字符'p'改为⼤写的'P'。

s = "python"

a = list(s)print a[0],a[1]

a[0] = 'P'print a[0],a[1]

程序的执⾏结果

python

['p', 'y', 't', 'h', 'o', 'n']

t t

p y

P y

由此可见,可以通过index访问或修改列表的某位置上的元素值。

遍历列表的各个元素值

如果想遍历整个列表,这⾥需要借助于循环体,可使⽤while或for循环体,有关for以后再讲,这⾥⽤while,因为之前有介绍过while循环体。

while循环体基本结构

循环体条件的变量初始化while 条件:

语句1

语句2

....

循环体变量的修正else:

语句a

....

举例:通过while循环体结构打印1~100。

#coding:utf-8# while条件表达式涉及的变量初始化

i = 1 # i <= 100为print i和 i = i + 1重复执⾏的条件while i <= 100:#while⾥可重复执⾏的语句print i#修正循环体变量i的值,使得i <= 100最终变为Fasle⽽终⽌while循环 i = i + 1

在回顾了while的基本使⽤以后,可以利⽤while和列表的index来遍历列表的各个元素值了。

s = "python"

a = list(s)

index = 0while index <len(a):print index, a[index]

index = index + 1

程序的执⾏结果:

0 p1 y2 t3 h4 o5 n

这⾥使⽤了len函数,是Python内建(⾃带)函数,可以测集合数据类型的长度(个数)值。

思考:如果基于负向坐标正向打印列表a的各元素值?

5.9

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

python循环添加列表_Python列表与循环体

python循环添加列表_Python列表与循环体

列表

列表是Python⾥最为常见、常使⽤的⼀种集合类,前述集合⼀章⾥给出了集合的定义和意图,即⼀堆数据⽤特定的符号整合起来视为⼀个整体,Python的列表List所使⽤的特殊集合符号为⽅括号,⽤逗号(,)间隔每个元素(元素类型可以不同)。列表是有序且可修改的集合类型。本章将围绕列表的基本概念、创建、使⽤展开,以及和列表相关的函数。

第 1 页

创建列表

列表有⼏个基本特征,第⼀是⽤⽅括号括起来、⽤逗号间隔;第⼆是列表⾥的元素类型可以相同或不同;第三列表可变可修改,长度可变内容可变。

创建或声明⼀个列表,(1)可以依据列表的定义⽤⽅括号括起来、⽤逗号间隔的形式创建,例如下边的a和b这两个列表。

a = [1, 2, 3]print a

b = [12, 13.5, 'h']print b

程序执⾏结果如下:

第 2 页

[1, 2, 3]

[12, 13.5, 'h']

从程序的执⾏结果可以得到验证列表内的各个元素的类型可以不相同。

也可以通过list()函数将某些数据类型转化为列表。

s = "hello"

a = list(s)print a

程序执⾏结果如下:

['h', 'e', 'l', 'l', 'o']

第 3 页

这个列表⾥的每个元素都是字符。

列表元素的访问

列表是有序的,每个元素都有⼀个位置坐标⽤index表⽰,在Python可以通过index访问列表的某位置上的数据值,当然也可修改该位置上的数据值。

访问某位置数据的语法格式

列表名[index]

假设列表的元素个数(即列表的长度)为n,那么列表各个元素的位置index从左向右(正向)依次为0、1、2....、n-1。从右向左(负⽅向)依次为-1、-2、... -n。

第 4 页

下⾯以基于“python”字符串构建出的列表为例

s = "python"print s

a = list(s)print a

程序的执⾏结果为:

python

['p', 'y', 't', 'h', 'o', 'n']

s为字符串"python",⽽a为列表。a⾥的各个元素的index位置信息如下图所⽰。

第 5 页

对于列表a⾥的元素't'的正向坐标为2,负向坐标为-4。

s = "python"print s

a = list(s)print aprint a[2], a[-4]

程序的执⾏结果如下所⽰:

python

['p', 'y', 't', 'h', 'o', 'n']

t t

修改某位置的数据的语法格式

列表名[index] = 新值

第 6 页

举例:将字符'p'改为⼤写的'P'。

s = "python"

a = list(s)print a[0],a[1]

a[0] = 'P'print a[0],a[1]

程序的执⾏结果

python

['p', 'y', 't', 'h', 'o', 'n']

t t

p y

P y

第 7 页

由此可见,可以通过index访问或修改列表的某位置上的元素值。

遍历列表的各个元素值

如果想遍历整个列表,这⾥需要借助于循环体,可使⽤while或for循环体,有关for以后再讲,这⾥⽤while,因为之前有介绍过while循环体。

while循环体基本结构

循环体条件的变量初始化while 条件:

语句1

语句2

第 8 页

....

循环体变量的修正else:

语句a

....

举例:通过while循环体结构打印1~100。

#coding:utf-8# while条件表达式涉及的变量初始化

i = 1 # i <= 100为print i和 i = i + 1重复执⾏的条件while i <= 100:#while⾥可重复执⾏的语句print i#修正循环体变量i的值,使得i <= 100最终变为Fasle⽽终⽌while循环 i = i + 1

第 9 页

在回顾了while的基本使⽤以后,可以利⽤while和列表的index来遍历列表的各个元素值了。

s = "python"

a = list(s)

index = 0while index <len(a):print index, a[index]

index = index + 1

程序的执⾏结果:

0 p1 y2 t3 h4 o5 n

这⾥使⽤了len函数,是Python内建(⾃带)函数,可以测集合数据类型的长度(个数)值。

列表是一种有序的集合,有点类似c里面的数组。它的特点是,可以随时向里面添加或删除其中的元素,在python中经常用来存放数据。列表的特点是中括号,内部元素用逗号隔开。

在这个列表中,可以放进去任何元素,不论你的元素是字符串、整型、浮点型、还是布尔值、空值,包括列表什么的,都可以放进去。

元素与元素之间,用逗号隔开。

列表会为每个元素分配序号,这个序号代表它的位置,称为索引(index),第一个元素的位置是0,第二个元素是1,以此类推。

使用索引获取列表中的值时,需要使用中括号来访问,在中括号前面加上列表名,中括号内部是元素的索引。

0代表第一个元素的位置,1代表第二个,-1代表倒数第一个,-2代表倒数第二个

使用 len() 函数,可以查看列表里面有多少个元素

在python中,列表的操作是非常的灵活的,我们可以向其中添加或删除元素。

添加使用 list.append() 函数

list.append() 函数是将元素插入到列表的末尾,当我们想在特定位置插入元素时可以使用 list.insert() 函数

list.insert() 函数接受两个参数,第一个参数是插入位置,第二个参数是要插入的元素。

需要注意的是,在使用append和insert时,必须在前面注明要操作的列表。就像上面的例子,我们要操作classmates这个列表,所以必须写成 classmates.append() 或 classmates.insert() ,如果不这么写,计算机就不知道你要往哪个列表中加入元素。

没有特殊情况的话,推荐使用append()函数添加元素,因为使用append的时候,元素默认加在列表尾部,不会造成其他元素索引值的改变。如果使用insert的话,就像上面的insert(1,'Tom'),在位置1插入'Tom'后,Tom后面所有的元素,索引值都加了一个1,列表中元素越多,受影响的程度越大,因此使用append()函数要比insert()函数更快。

删除列表中元素的方法有三种

del后面需要用索引的方式表明要删除的元素,也就是上面的例子,names[1]代表names中的第二个元素,使用del即可删除

list.pop() 函数与del差不多,都是使用索引值进行删除,只不过写法不同。

我们可以发现,执行 names.pop(1) 后,python shell打印出了第二个元素的值,也就是我们要删除的那个值,这是因为 pop() 这个函数,是有返回值的,有时候我们需要使用这个值,这个时候就可以用变量存起来。

这样我们就可以通过调用a而使用刚才删掉的元素了。

list.remove() 函数的作用是删除第一个匹配的元素,上面的例子中,names这个列表里面,有两个'Bob',remove函数只删除了第一个'Bob'。这就是 list.remove() 函数的特点。

有时候我们想使用列表的前10个元素,或者前n个元素,这时候就应该使用列表的切片。

切片和索引类似,都是使用中括号,区别是,索引中的中括号里面只有一个数,而切片不同。切片是切割列表,形成切割下来的部分形成新的列表。

切片: list[start:end:[step=1]] ,这就是切片的表达式,要求start和end两者必须有一个,step不是可以不指定,不指定的时候默认为1。

切片该怎么理解呢,start就是开始的位置,end就是结束的位置。切片有个特点是“取前不取后”,看上面那个例子可以发现,1作为start,3作为end,1代表第二个元素,3代表第四个元素,列表切片的时候,是不取后面的那个数字对应的元素的,也就是不取第四个元素,所以names[1:3]只取了第二个元素和第三个元素,这就是所谓的取前不取后。

再看下一个例子。

当不指定start或者end的时候,start默认为0,end默认为最后一个元素的索引值+1,因为“取前不取后”,要想取到最后一个元素,必须加个1才行。

上例中,用 len(numbers) 表示了最后一个元素的索引值,因为索引值从0开始,最后一个元素的索引值一定是列表内元素个数-1,根据“取前不取后”,在end位置上的数字应该+1,所以最后就等于 len(numbers) 了。

当不设定start和end的时候,就默认取所有的元素了。

当加入step,这个选项后,step代表步长,默认为1,设定成2的时候,就是隔一个取一个,设定成3时就是隔两个取一个。

上例中,第一个切片,start和end均未设定,因此从第一个元素开始,隔一个取一个,得到了所有奇数位置的元素。

第二个切片,start设定为了1,因此取了所有偶数位置的元素。

3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False

更多关于列表的信息可以通过使用 help(list) 查看帮助文档。