来自 编程应用 2019-09-04 19:47 的文章
当前位置: 六合联盟网 > 编程应用 > 正文

python列表与元组详解实例,python基础教程_学习笔

序列

数据结构:通过某种方式协会在协同的数额成分的集中,那么些数量成分得以是数字还是字符,乃至足以是任何数据结构。

python中,最基本的数据结构是连串。

队列中的每一种元素被分配三个序号——即成分的岗位,也称之为索引。第贰个索引是0,第2个是1,由此及彼。

在那章中引进了数据结构的概念。数据结构是经过某种形式组织在共同的数量成分的相会。在python中,最宗旨的数据结构就是类别。类别中的种种成分被分配四个序号,即成分的地方,也被称作索引。注意:第四个索引是0。
1.队列大概浏览
python有6种内建的行列:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象。
 这里主要介绍列表和元组。列表和元组首要差距在于,列表能够修改,元组不可修改。一般的话,在差比非常少全数意况下列表都可以替代元组。
在需求操作一组数值的时候,种类很好用:

队列概览

python满含6种内建的系列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。

列表和元组的关键差距在于,列表能够修改,元组不能够。

选拔后面一个的理由经常是手艺性的,它与python内部的运营格局有关。那也是内建函数也许回到元组的原由。

一般的话,在差不离全数的图景下,列表都足以替代元组。在那之中一种须求注意到例外情形:使用元组作为字典的键。在这种情况下,因为键不可修改,所以不能利用列表。

复制代码 代码如下:

通用种类操作

不冬日列类型都足以扩充一些特定的操作。那一个操作满含:索引、分片、加、乘以及检查有些成分是还是不是属于类别的分子(成员身价)。除此而外,python还会有划算体系长度、寻觅最大意素和纤维成分的内建函数。

注:别的叁个重大的操作:迭代,后续会接触到。

Edward = ["Gumby",42]

索引

队列中的全部因素都是编号的——从0初阶递增。这几个成分得以透过编号分别访谈。使用负数索引时,python会从侧面,也正是最终叁个要素起初计数。最终1个成分的地点编号是-1(记住:不是0)

字符串

>>> greeting = 'hello'

>>> greeting[0]

'h'

>>> greeting[-1]

'o'

>>> greeting[1]

'e'

>>> greeting[-2]

'l'

字符串字面值也得以利用索引。

>>> 'hello'[-1]

'o'

>>> 'hello'[-2]

'l'

列表

>>>greeting=['hello','world','you','and','i']

>>> greeting[0]

'hello'

>>> greeting[-1]

'i'

元组

>>>greeting=('hello','world','you','i')

>>> greeting[0]

'hello'

>>> greeting[-2]

'you'

假诺叁个函数调用重回一个队列,能够一向对回到结果开展索引操作。

>>>forth_num=raw_input("Please input a num(lenght>4): ")[3]

Please input a num(lenght>4): 20140508

>>> forth_num

'4'

 同不经常常间,类别能够富含其余的种类。如:

分片

运用分片操作能够访谈必将范围内的因素,通过冒号相隔的七个索引来达成。

字符串

>>> greeting = 'Hello,world!'

>>> greeting[0:3]

'Hel'

列表

>>> greeting=['hello','world','you','and','i']

>>> greeting[1:3]

['world', 'you']

元组

>>>greeting=('hello','world','you','i')

>>> greeting[0:3]

('hello', 'world', 'you')

能够,分片中首先个目录是急需领取部分的首先个要素的号码,首个目录是分片之后剩下部分的第二个元素的号子。简言之,分片操作的贯彻须求提供多少个目录作为边界,第三个目录是包罗在分片内的,首个则不富含在分片内。

复制代码 代码如下:

大雅的走后门

借使急需拜望连串的末尾多少个要素呢?当然能够显式的操作:

>>> greeting=['hello','world','you','and','i']

>>> greeting[1:5]

['world', 'you', 'and', 'i']

索引5指向的成分并空头支票,这种方法自然是可行的。但若是急需从列表的终极早先计数呢?

>>> greeting[-4:-1]

['world', 'you', 'and']

>>> greeting[-4:0]

[]

那并非我们想要的结果。

实际上,只要分片最左边的目录比左侧的晚出现在体系中,结果正是二个空系列。可以采用近便的小路:借使分片所得一些含有系列结尾的成分,置空最后一个目录即可:

>>> greeting[-4:]

['world', 'you', 'and', 'i']

一致能够用于连串开首的因素:

>>> greeting[:3]

['hello', 'world', 'you']

同理,想要复制整个种类,可以将五个索引置空(冒号不可能轻易):

>>> greeting[:]

['hello', 'world', 'you', 'and', 'i']

Edward = ["Gumby",42]
John = ["Smith",50]
database = [Edward,John]

更加大的幅度

进展分片,分片的上马三保结束点需求张开点名,别的贰个参数——步长——平日是隐式设置的。在普通的分片中,步长是1——分片操作正是遵照这几个增长幅度每一个遍历种类的成分,然后回到开端和结束点之间的具有因素。

>>> numbers=[1,2,3,4,5,6,7,8,9,10]

>>> numbers[0:10:2]

[1, 3, 5, 7, 9]

近便的小路在这里还是适用。将每4个成分中的第叁个提抽出来:

>>> numbers[::4]

[1, 5, 9]

步长无法为0,因为不可能向下举行:

>>> numbers[::0]

Traceback (most recent call last):

File "", line 1, in

numbers[::0]

ValueError: slice step cannot be zero

小幅能够是负数,即从右到左提取成分:

>>> numbers[8:3:-1]

[9, 8, 7, 6, 5]

>>> numbers[::-2]

[10, 8, 6, 4, 2]

>>> numbers[:5:-2]

[10, 8]

>>> numbers[5::-2]

[6, 4, 2]

>>> numbers[3:8:-1]

[]

纪事:分片最左侧的目录比侧面的晚出现在系列中,结果正是二个空类别。

当使用一个负数作为步长时,必需让初步点超越截至点。在尚未鲜明钦定最早点和结束点的时候,正负数的应用大概会带来一些模糊。

总来说之,对于二个正数步长,python会从种类的头顶初叶向右提前成分,直至最后贰个要素;

对此负数步长,从体系的尾巴开端向左提取成分,直到第多少个成分。

数据结构:通过某种格局组织在同步的数码成分的汇集,这个多少成分得以是数字照旧字符, 甚至足以是任何数据结构。 python中,最...

  1. 通用系列操作
    享有连串类型都能够实行一些特点的操作,包蕴:索引,分片,加,乘以及检查有些成分是还是不是属于种类的积极分子(成员身份)。除此而外,python还应该有划算系列长度,寻找最大因素和微小成分的内建函数。
    2.1 索引
    队列中的全部因素都是有号码的--从0开首递增。这一个因素得以透过号码分别会见:

复制代码 代码如下:

>>>greeting = "hello"
>>>greeting[0]
'H'

选用负数索引的话,python会从侧边,约等于从最后四个要素最初计数,最终二个元素的地方编号是-1!

复制代码 代码如下:

>>> greeting[-1]
'g'

2.2 分片
分片能够访谈必将限制内的因素,通过冒号相隔的2个索引来完成。分片对于领取类别的一有的是很有用的,第四个目录是提取部分的首先个因素编号,最终的目录是分片之后剩下部分的率先个要素编号。

复制代码 代码如下:

>>> number = [1,2,3,4,5,6,7,8,9,10]
>>> number[3:6]
[4,5,6]
>>> number[0:1]
[1]

2.2.1 优雅的捷径
急需拜候最终3个因素,能够那样显式操作:

复制代码 代码如下:

>>> number[7:10]
[8,9,10]

此间索引10针对的第13个因素不设有,却是在终极贰个要素之后。
如若需求从列表结尾初阶计数,正是说假如分片所得有些满含连串结尾的因素,那么只需置空最终二个索引:

复制代码 代码如下:

>>> number[-3:]
[8,9,10]

这种方法适用于队列起首的因素或许展现整个类别:

复制代码 代码如下:

>>> number[:3]
[1,2,3]
>>> number[:]
[1,2,3,4,5,6,7,8,9,10]

2.2.2 越来越大的增长幅度
扩丰富片的时候,分片的始发和竣事都供给开展点名,另三个参数-步长,通常是隐式设置的。暗中同意的宽窄是1。借使展现设置步长为比1大的数,那么会跳过好几因素。

复制代码 代码如下:

>>> number[0:10:2]
[1,3,5,7,9]
>>> number[3:6:3]
[4]

宽度不可能为0,可是足以是负数,即从右到左提取成分:

复制代码 代码如下:

>>> number[10:0:-2]
[10,8,6,4,2]
>>> number[0:10:-2]
[]

上边第4个姿态是谬误的,使用一个负数作为步长时,必需让开始点当先甘休点。
2.3 系列相加
因而运用加号能够进行体系的连日操作:

复制代码 代码如下:

>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>>'hello, ' + 'world'
'hello, world'
>>>[1,2,3] + 'hello'
TypeError:can only concatenate list(not 'string') to list

如上边第4个例子所示,列表和字符串是力所不及连接到一块的,尽管它们都以类别,可是唯有2种同等类其他系列工夫开展一而再操作。

复制代码 代码如下:

2.4 乘法
用数字x乘以叁个类别会扭转新的行列,在新的行列中,原本的队列被再次x次:
[code]
>>> 'python' *5
'pythonpythonpythonpythonpython'
>>> [42] * 5
[42,42,42,42,42]

None,空驶列车表和伊始化
空驶列车表可以通过2个中括号实行表示([]),不过只要想创建七个占领10个要素空间,却不包涵另外有用内容的列表,我们就供给一个值来表示空值,能够那样做:

复制代码 代码如下:

>>> sequence = [None] * 10
>>> sequence
[None,None,None,None,None,None,None,None,None,None]

2.5 成员身份
为了检查一个值是不是在体系中,能够采用in运算符。它检查有些条件是不是为真,然后再次来到相应的值(True或False)

复制代码 代码如下:

>>> p = 'write'
>>> 'w' in p
True
>>> user =["a","b","c"]
>>> raw_input('Enter:') in user
Enter:a
True

2.6 长度,最大一点都不大值

复制代码 代码如下:

>>> numbers = [10,20,30]
>>> len(numbers)
>>> max(numbers)
>>> min(numbers)
>>> max(1,99)
>>> min(1,99)

上边最终2个例子中,max函数和min函数的参数实际不是连串,而是以四个数字一向当做参数。
3.列表:python的“苦力”
3.1 list函数
因为字符串不能够像列表一样被退换,所以不时依照字符串创建列表会很有用。ps:list函数适用于具有品种的列表,不只是字符串。

复制代码 代码如下:

>>> list('hello')
['h','e','l','l','o']

提示:能够用下边包车型地铁表明式将三个由字符组成的列表转变为字符串:

复制代码 代码如下:

>>> strs = ‘ '.jion(list)
>>> strs
"h e l l o"

3.2 基本列表操作
主意是三个与一些对象有紧凑联系的函数,对象可能是列表,数字,也或者是字符串只怕别的门类的目的。列表提供了多少个形式,用于检查测验或许修改个中的内容。
 3.2.1 append
append方法用于在列表末尾追加新的指标:

复制代码 代码如下:

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

留神:append方法不是粗略地回来三个改造过的新列表,而是径直修改原本的列表。

3.2.2 count
count方法总计有些元素在列表中冒出的次数:

复制代码 代码如下:

>>> x =[[1,2],1,1,[1,2,[1,2]]]
>>> x.count(1)
2

3.2.3 extend
extend方法能够在列表的终极二遍性追加另二个队列中的五个值。
在意:extend方法和一而再操作(+)最重大的区分在于:extend方法修改了被扩张的行列,而连日操作会再次来到八个斩新的列表。

3.2.4 index
index方法用于从列表中找寻有些值第壹回相配项的目录地点:

复制代码 代码如下:

>>> knights = ['we','are','the','knights']
>>> knights.index('the')
2
>>> knights.index("hi")
ValueError:list.index(x):x not in list

当相配项没有被找到时,会引发叁个非常。

3.2.5 insert
insert方法用于将对象插入到列表中:

复制代码 代码如下:

>>> numbers = [1,2,3,6]
>>> numbers = insert(3,5)
>>> numbers
[1,2,3,5,6]
>>> numbers[3:3] = [4]
>>> numbers
[1,2,3,4,5,6]

地点最后二个例子中经过分片赋值实现插入,不过可读性比不上insert。

3.2.6 pop
pop方法会移除列表中的二个因素,并且放回该因素的值,它是独占鳌头贰个不仅能修改列表又能再次回到成分值的列表方法:

复制代码 代码如下:

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

3.2.7 remove
 remove方法用于移除列表中有些值的率先个相配项:

复制代码 代码如下:

>>> x = ['to','be','to']
>>> x.remove('to')
>>> x
['be','to']
>>> x.remove('kkk')
ValueError:list.remove(x):x not in list

能够看到唯有首先次面世的值被移除了,而不在列表中的值是不会移除的。

 3.2.8 reverse
reverse方法将列表中的成分反向存放:

复制代码 代码如下:

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

 3.2.9 sort
sort方法用于在原岗位对列表实行排序,意味着改变原本的列表,并不是简轻松单地赶回一个已排序的列表别本。
假定想要获得一个排序而不改换原本的数值,那就须要先赋值再排序:

复制代码 代码如下:

>>> x = [4,2,7,1]
>>> y = x[:]
>>> y.sort()
>>> x
[4,2,7,1]
>>>y
[1,2,4,7]

瞩目:上面的事例中赋值使用的是y=x[:],分片是一种很有功能的复制整个列表的方法。若是轻易地把x赋值给y是从未的(y=x),因为那样做就让x和y指向同贰个列表了。
另一种得到已排体系表别本的秘籍是采用sorted函数:

复制代码 代码如下:

>>> x = [4,5,3,7,2]
>>> y = sorted(x)
>>> x
[4,5,3,7,2]
>>> y
[2,3,4,5,7]  

 3.2.10 高档排序
一旦期望元素可以根据一定的办法举办排序,那么能够通过compare(x,y)的花样自定义比较函数。内建cmp函数提供了相比较函数的私下认可完成方式:

复制代码 代码如下:

>>> cmp(1,2)
-1
>>> cmp(2,1)
>>> cmp(1,1)
>>> numbers = [5,3,9,7]
>>> numbers.sort(cmp)
>>> numbers
[3,5,7,9]

sort方法有另外2个可选参数-key和reverse。要使用它们,那将在经过名字来钦定。

复制代码 代码如下:

>>> x = ['a','abc','ab']
>>> x.sort(key=len)
>>> x
['a','ab','abc']
>>> y = [2,4,1,5]
>>> y.sort(reverse)
>>> y
[5,4,2,1]

 4.元组:不可变系列
 创制元组的语法很简单:假诺您用逗号分隔了一些值,那么你就活动创设了元组。

复制代码 代码如下:

>>>1,2,3
(1,2,3)
>>>(1,2,3)
(1,2,3)
>>>()
()
>>>42,
(42,)

如上边最终一个事例,假若要兑现一个饱含三个值的元组,必需在数值前边加贰个逗号。
4.1 tuple函数
tuple将一个行列作为参数并把它调换为元组,如若参数是元组,那么该参数就能够被形容重回:

复制代码 代码如下:

>>> tuple([1,2,3])
(1,2,3)
>>> tuple('abc')
('a','b','c')
>>> tuple((1,2,3))
(1,2,3)

4.2 基本元组操作
元组其实并不复杂,除了创立元组和访问元组成分之外,也绝非太多别的操作:

复制代码 代码如下:

>>>x = 1,2,3
>>>x[1]
2
>>> x[0:2]
(1,2)

元组的分片如故元组,就如列表的分片依旧列表同样。

4.3 那么,意义何在
元组是不行代替的:
(1)元组能够在炫丽中当作键使用,而列表不行。
(2)元组作为广大内建函数和形式的再次回到值存在。

 

...

本文由六合联盟网发布于编程应用,转载请注明出处:python列表与元组详解实例,python基础教程_学习笔

关键词: