基本对象类型(一)
2018-09-01 05:53:11来源:博客园 阅读 ()
列表(list)
- 列表的定义与赋值
- 列表的基本操作(增删改查)
问题的引入:在对数据进行操作时,可能会遇到一组数据,如何对这些数据进行操作预处理?
1 name0='wuchao' 2 name1='jixin' 3 name2='xiaohu' 4 name3='sanpang' 5
这种方法繁琐且对于数据不方便操作。
1 names='wuchao jinxing xiaohu sanpangn‘’
这种存数据存在的问题:数据不存在关联并且不方便记忆。
在python语言中引入列表这种数据类型,方便用户对大量数据进行批量存储和操作。
列表可以存一组数据,并且数据之间的类型可以不一致,不同元素之间用逗号链接起来,用方括号进行定义。例如可以定义如下的列表a:
a=['wuchao','jixin','xiaohu','sanpang']
此列表中含有四个元素(item)。某个列表确定之后下面就是要对列表进行一定的操作,可以对整个列表进行整体操作,也可以对列表中的某个元素进行操作,那么怎么确定列表中某个元素呢?
没错,根据某个元素(item)在列表中的位置。在python中这种位置叫作index(索引)。对于索引有两点需要注意 ①索引有正负②列表中第一个元素从0开始
列表中存入的元素可以是整型,字符型,也可以是列表,元组等。如果是列表中包含列表,就实现了列表的嵌套。如下:
下面就学习下,对列表的一些基本操作,具体包括(增删改查):
1、 查询列表中的元素
(1)可以通过索引查询列表中的元素:这里面涉及到一个概念叫作切片 (切片:就是选取列表中的部分元素或全部元素的一种操作)
下面举例说明,定义的列表a如下:
a=['wuchao','jinxing','xiaohu','sanpang']
切片(slice)的手法如下 a[ start:end:step] start:表示开始的索引值 end:表示结束的索引值(实际并不包含) step:切片的步长,step为正数时从左往右;为负数时从右往左
举例代码如下:
>>>a=['wuchao','jinxing','xiaohu','sanpang'] >>> a[1:4] #第一个元素到第三个元素
['jinxing', 'xiaohu', 'sanpang']
>>> a[1:] #从第一个元素到最后一个元素 ['jinxing', 'xiaohu', 'sanpang']
>>> a[1::2] #从左到右,隔一个取一个 ['jinxing', 'sanpang']
>>> a[-1::-2] #从右往左 步长为2 ['sanpang', 'jinxing']
(2)当只知道元素的值,而不知道元素在列表中的索引值(index)的时候,可以使用index()获取元素的索引
array.index(x) #返回元素在列表中第一次出现的索引值
Return the smallest i such that i is the index of the first occurence of x in the array.
如何取第二次出现的值,先取第一次出现的索引值,然后切片
>>> a.index('jinxing')
1
(3)计算列表中某个元素出现的次数 count()
array.count(x) #计算列表中元素出现的次数,可以判断某个元素是否在列表中查次数
Return the number of occurrences of x in the array.
>>> a.count('zhou') 0 >>> a.count('jinxing') 1 >>
(4)判断某个元素x是否是列表中值得方法
方法一: 查询元素x在列表中出现的次数,若不为零则该元素在列表中
方法二: x in a #item in array 即可进行判断,如果返回值为True则为列表中的元素,否则不为列表中的元素
>>> a.count('zhou') 0 >>> 'zhou' in a False
(5)遍历数组中的所有元素
在学习语法的过程中,我们可以知道这应该是一种循环结构;循环包括while循环 和 for循环。for循环可以访问迭代式性质(itera)的对象,那么采用for循环实现对列表中元素的访问:
1 #其结构语法如下: 2 for x in list: #其中list为列表的名称 3 pass
举个例子如下:
>>> a=['zhou','jian',[1,2,3],(4,5,)] #定义的列表有元素,有列表,有元组 >>> for x in a: #遍历列表 print(x) #输出的结果 zhou jian [1, 2, 3] (4, 5)
2、修改列表中的元素
修改列表中的方法直接对列表中的某个元素或切片直接赋值即可。
>>> a[0]=1 #直接修改列表中某个元素的值 >>> a [1, 'jinxing', 'xiaohu', 'sanpang']
>>> a[1:3]=['zhou','hua'] #修改列表中某几个元素的值,注意切片方法的使用
>>> a
[1, 'zhou', 'hua', 'sanpang']
3、删除列表中的元素
删除列表中的元素有三种方法:remove(x)、pop(index)、del()
(1)array.remove(x) #直接删除内容,此种方法需要知道元素的具体值
Remove the first occurrence of x from the array
>>> a.remove('zhou') #删除zhou
>>> a [1, 'hua', 'sanpang']
(2)array.pop([i]) #根据索引删除元素,索引可有可无,默认为-1,删除的元素返回一个
Removes the item with the index i from the array and returns it. (并返回一个值)
The optional argument defaults to -1, so that by default the last item is removed and returned.
>>> a.pop() #默认删除最后一个元素 ’sanpang' #返回的删除值
>>> a [1, 'hua']
>>> a.pop(1) #删除第二个元素 'hua' #返回的删除值 >>> a [1]
(3)del()
4、增加列表中的元素
增加列表中的元素有三种方法:append(x) insert(i,x) extend()
(1)array.append(x) #在数组的最后插入一个元素
Append a new item with value x to the end of the array.
>>> a [1] >>> a.append('xuepeng') #把xue添加到列表的末尾 >>> a [1, 'xuepeng']
(2)array.insert(i, x) #在i的位置之前插入一个元素x
Insert a new item with value x in the array before position i.
Negative values are treated as being relative to the end of the array.
(3)array.extend(iterable) #在列表的末尾添加一组 数组 extend:延伸
Append items from iterable to the end of the array.
If iterable is another array, it must have exactly the same type code; if not, TypeError will be raised.
If iterable is not an array,it must be iterable and its elements must be the right type to be appended to the array
[1, 'xuepeng'] >>> b=[1,2] #列表b >>> a.extend(b) #在列表a的末尾添加列表b >>> a [1, 'xuepeng', 1, 2]
>>>a+b #此种方法也可实现,但不返回值
5、其它的操作(排序、逆转)
(1)逆转(reverse)
array.reverse() #翻转列表中元素的顺序
Reverse the order of the items in the array.
>>> a [2, 1, 'xuepeng', 1] >>> a.reverse()#翻转列表 >>> a [1, 'xuepeng', 1, 2]
(2)排序(sort)
array.sort(*, key=None, reverse=False) #排序,默认从小到大 问题如何从大到小,当reverse为真的时候从大到小排
This method sorts the list in place.using only < comparisons between items. Exceptions are not suppressed - if any comparison operations fail,
the entire sort operation will fail (and the list will likely be left in a partially modified state)
everse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.
>>> c=[11,22,11,111,234] #定义的列表 >>> c.sort() #对列表进行排序,默认从小到大
>>> c [11, 11, 22, 111, 234] #排序完成
>>> c=[11,22,11,111,234] #定义的列表
>>> c [11, 22, 11, 111, 234] >>> c.sort(reverse=True) #对列表进行排序,注意从大到小 >>> c [234, 111, 22, 11, 11]
小结:列表就是一系列元素的合集,要注意元素的索引值(index),对部分元素进行操作,要注意切片(slice)的操作。
一系列的内置函数要熟记,整理如下表格:
功能 | 操作 |
查找元素 | 切片 slice a[ :: ] |
判断某个元素是否为列表中的值 ①count(x) ② x in a | |
判断列表中某个元素出现的次数 count() | |
知道某个元素,求其索引值 index(value) | |
如何遍历数组打印 for x in list: for x,v in list: | |
增加元素 | append(x) :在列表的末尾增加x |
insert(i,x) :在索引i之前添加x | |
extend(b) :b为数组,把数组b添加到数组a之后 | |
修改元素 | 修改单个元素: a[i]=x |
修改多个元素 :切片进行操作 | |
删除元素 | remove(x):直接删除某个具体的元素x |
pop(i) :根据索引删除元素 | |
del() :直接删除 | |
对元素进行排序 | sort(reverse=False) :默认从小到大进行排序;从大到小进行排序改变reverse |
逆转列表 | reverse() :把列表中的元素改变顺序 |
2、元组
在学习列表之后,介绍一下另外一种对象元组。(tuple)
元组又称不可改变的列表,其也是用来存储一组数据,和列表的区别是其中的数据不能修改,删除,增加。因此称为不可改变的列表。列表的切片操作同样适用于元组。
元组的定义:元组写在小括号里面(),元素之间用逗号隔开。(注意与列表中用中括号【】的区别)
构造包含0个或一个元素的元组比较特殊,所以有一些额外的语法规则:
tup1=() #空元组
tup2=(20,) #一个元素,需要在元素后添加逗号
元组同列表一样支持切片查看,遍历元组:
1 >>> tup=((1,2,),(4,5),(6,7)) #定义的元组,注意元组的嵌套 2 >>> for x in tup: #遍历元组 3 print (x) 4 5 (1, 2) 6 (4, 5) 7 (6, 7)
1 >>> for x,v in tup: #用两个变量接收遍历得到的数据 2 print(x,v) 3 4 1 2 5 4 5
作用: 1、对于一些数据我们不想修改,可以使用
2、另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用而列表则不行;
元组作为很多内建函数和方法的返回值存在
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:python 闭包
- python_0基础开始_day07 2019-08-13
- Python之对象持久化笔记 2019-08-13
- python之函数、面向对象 2019-08-13
- 进程相关 2019-08-13
- Django基本知识 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash