赞
踩
python3中的数据类型可以以组来出现,组这种数据类型可以分为三类列表(list)、字典(dict)和元组(tuple)。
列表
列表是使用[]括起来的一个个数据,每个数据之间一逗号分隔。数据不分类型,数字、字母、字符串、甚至是列表、字典、元组都可以。任意的列表、字典、元组放在列表、字典、元组中叫做嵌套。如下:
- #纯数字#
- >>> [1,2,3,4,5,6,7,8,9,10]
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-
- >>> type([1,2,3,4,5,6,7,8,9,10])
- <class 'list'>
-
-
- #纯字母,注意:字母、字符串(字母其实也属于字符串)需要加一对引号(单双三引号都可以)#
- >>> ['A','B','C','D','E','F','G']
- ['A', 'B', 'C', 'D', 'E', 'F', 'G']
-
- >>> type(['A','B','C','D','E','F','G'])
- <class 'list'>
-
-
- #数字、字符串、bool类型(True)任意组合#
- >>> [1,'2','a','小明',True]
- [1, '2', 'a', '小明', True]
-
- >>> type([1,'2','a','小明',True])
- <class 'list'>
-
-
- #嵌套:数字、字符串、bool类型、列表、字典、元组任意组合#
- >>> [[1,'2','w'],True,1,'2','a',(1,'2','a'),{'1':'6','2':'8','a':'b'}]
- [[1, '2', 'w'], True, 1, '2', 'a', (1, '2', 'a'), {'1': '6', '2': '8', 'a': 'b'}]
-
- >>> type([[1,'2','w'],True,1,'2','a',(1,'2','a'),{'1':'6','2':'8','a':'b'}])
- <class 'list'>
-
-
- #带()的为元组,带{}为字典,具体特性下面会说#
列表可以任意读增删改以及判定其中的任意内容,其中增删改之后只要再保存回对应的变量里,就会永久改变。读取的数据可以和其他数据任意组合并输出。
首先我们先看下读取,如下:
- #读取:直接在列表的后方添加一个[]包含的数字序列,0表示列表从左往右数第一个,-1表示从右往左数第一个#
- >>> ['A','B','C','D','E','F','G'][1]
- 'B'
-
- #直接使用变量做读取#
- >>> first=['A','B','C','D','E','F','G']
- >>> print (first[1])
- 'B'
-
- #读取内容与其他数据组合并输出#
- >>> first=['A','B','C','D','E','F','G']
- >>> print ('hello,'+first[1])
- hello,B
如果想读取某个范围的列表可以通过使用[1:5]这种的方式来实现,[1:5]中:的左边代表起始位置,:右边代表终止位置,但是右边的数字要比你要读取的那个位置数大一,比如你要读取前六位,应该是[0:7]而非[0:6],这是python中的差一性。
如果将[1:5]中的1去掉,即[:5],这个代表从最开始读取,一直读取到第四位。如果将[5:10]中的10去掉,即[5:],这个代表从第五位截取,一直截取到最后一位。如果是[-3:]代表的就是从倒数第三位一直读取到最后。
- #范围读取(1)#
- >>> ['A','B','C','D','E','F','G'][0:4]
- ['A','B', 'C', 'D']
-
- #范围读取(2)#
- >>> ['A','B','C','D','E','F','G'][:4]
- ['A','B', 'C', 'D']
-
- #范围读取(3):从第二位到第十位,每隔一位截取一次#
- >>> ['A','B','C','D','E','F','G','H','I','J','K'][1:11:2]
- ['B', 'D', 'F', 'H', 'J']
-
也可以判断某个数据是否在列表中(使用in)或者是否不在列表中(not in)或者列表一共有几位(len):
- #是否在列表中#
- >>> 'A' in ['A','B','C','D','E','F','G','H','I','J','K']
- True
-
- >>> '1' in ['A','B','C','D','E','F','G','H','I','J','K']
- False
-
-
- #是否不在列表中#
- >>> 'A' not in ['A','B','C','D','E','F','G','H','I','J','K']
- False
-
- >>> '1' not in ['A','B','C','D','E','F','G','H','I','J','K']
- True
-
-
- #总共有几位#
- >>> len(['A','B','C','D','E','F','G','H','I','J','K'])
- 11
还可以判定列表中最大值和最小值是多少,数字的话按0最小来拍,字符则是按字母排序来排,有空格则是空格最小。
- >>> min(['小王','小李','小安','小张','小赵','小沈'])
- '小安'
-
- >>> max(['小王','小李','小安','小张','小赵','小沈'])
- '小赵'
-
- >>> min(['A','B','C','D','E','F','G','H','I','J','K'])
- 'A'
-
- >>> max(['A','B','C','D','E','F','G','H','I','J','K'])
- 'K'
-
- >>> min([1,2,3,4,5,6,7,8,9,10,11])
- 1
- >>> max([1,2,3,4,5,6,7,8,9,10,11])
- 11
-
- #但如果是字符串格式的数字,则是9最大,因为这时候所有数据都是字符串#
- >>> min(['1','2','3','4','5','6','7','8','9','10','11'])
- '1'
- >>> max(['1','2','3','4','5','6','7','8','9','10','11'])
- '9'
列表数据的修改:
- #修改列表数据#
- >>> first=['A','B','C','D','E','F','G']
- >>> first[0]='AAA'
- >>> print (first)
- ['AAA', 'B', 'C', 'D', 'E', 'F', 'G']
我们可以使用sort()或者sort()依据序列(即0、1、2)来对列表进行永久性排序。
- #sort()永久性排序:正序#
- >>> test=[1,3,5,7,9,11,2,4,6,8,10]
- >>> test.sort()
- >>> print(test)
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
-
- #sort()永久性排序:倒序#
- >>> test=[1,3,5,7,9,11,2,4,6,8,10]
- >>> test.sort(reverse=True)
- >>> print(test)
- [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
-
- #sorted()临时排序#
- >>> sorted([1,3,5,7,9,11,2,4,6,8,10])
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
-
- #验证sorted()临时排序#
- >>> test = [1,3,5,7,9,11,2,4,6,8,10]
- >>> test1 = sorted([1,3,5,7,9,11,2,4,6,8,10])
- >>> print(test1)
- >>> print(test)
- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- [1, 3, 5, 7, 9, 11, 2, 4, 6, 8, 10]
也可以用reverse()(和上面sort用法里面的反序是一样的)将列表现有序列相反排列:
- >>>test = [1,3,5,7,9,11,2,4,6,8,10]
- >>>test.reverse()
- >>>print (test)
- [10, 8, 6, 4, 2, 11, 9, 7, 5, 3, 1]
列表数据的增加:
- #添加列表数据1:直接插入(insert()函数) 注:下文中insert(0,'efg')中的0代表序列数,在第几位插入就填几#
- first=['A','B','C','D','E','F','G']
- first.insert(0,'efg')
- print (first)
- ['efg', 'A', 'B', 'C', 'D', 'E', 'F', 'G']
-
- #添加列表数据2:在末尾插入(append()函数)#
- >>> first=['A','B','C','D','E','F','G']
- >>> first.append('aaa')
- >>> print (first)
- ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']
-
- #添加列表数据3:列表相加#
- >>> ['A','B','C','D','E','F','G']+['A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']
- ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'aaa']
-
- #重复列表数据#
- >>> ['1','2','3']*3
- ['1', '2', '3', '1', '2', '3', '1', '2', '3']
列表数据的删除:
- #删除列表数据1:根据位置删除(del),del first[0]中的0填删除数据的序列位即可#
- >>> first=['A','B','C','D','E','F','G']
- >>> del first[0]
- >>> print (first)
- ['B', 'C', 'D', 'E', 'F', 'G']
-
-
- #删除列表数据2:pop()(将删除的数据值存储到其他地方,以便以后可以调用)#
- #在pop()的()中添加相应位数即可删除相应数值,如不添加数字则默认删除最后一位#
- >>> first = ['A','B','C','D','E','F','G']
- >>> first_pop = first.pop()
- >>> print (first)
- >>> print (first_pop)
- ['A','B','C','D','E','F']
- G
-
- >>> first = ['A','B','C','D','E','F','G']
- >>> first_pop = first.pop(0)
- >>> print (first)
- >>> print (first_pop)
- ['B','C','D','E','F','G']
- A
-
-
- #根据数据内容删除#
- >>> first = ['A','B','C','D','E','F','G']
- >>> first.remove('C')
- >>> print (first)
- ['A','B','D','E','F','G']
当然,并非是很多数据才能组成一个列表,只有一个数据也可以组成一个列表。即使没有数据,只要有[]就是列表。
- >>> type([1])
- <class 'list'>
-
- >>> type([])
- <class 'list'>
最后,还有一个用法len()这个不止在列表,在很多地方(比如字符串)都可以使用,作用是查看数据长度。
- >>> len([10, 8, 6, 4, 2, 11, 9, 7, 5, 3, 1])
- 11
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。