首页 > 代码库 > python基础教程_学习笔记2:序列-2

python基础教程_学习笔记2:序列-2

序列-2

通用序列操作

序列相加

通过加号对列表进行连接操作;

列表

>>> [1,3,4]+[2,5,8]

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

字符串

>>> ‘134‘+‘258‘

‘134258‘

元组

>>> (1,2,3)+(2,5,8)

(1, 2, 3, 2, 5, 8)

元素数据类型不同的列表

>>> [[1,3],[3,9]]+[[2,2],‘abc‘]

[[1, 3], [3, 9], [2, 2], ‘abc‘]

元素数据类型不同的元组

>>> (‘245‘,1,[5,8])+([3,4],‘5‘,(5,9))

(‘245‘, 1, [5, 8], [3, 4], ‘5‘, (5, 9))

>>> [2]+[3,5,9]+[10]

[2, 3, 5, 9, 10]

连续相加

>>> [2]+[3,5,9]+[10]

[2, 3, 5, 9, 10]

不同的序列相加

Traceback (most recent call last):

  File "<pyshell#10>", line 1, in <module>

    ‘123‘+[5,8]

TypeError: cannot concatenate ‘str‘ and ‘list‘ objects

>>> [5,8]+(2,5,8)

 

Traceback (most recent call last):

  File "<pyshell#11>", line 1, in <module>

    [5,8]+(2,5,8)

TypeError: can only concatenate list (not "tuple") to list

>>> ‘123‘+(2,5,8)

 

Traceback (most recent call last):

  File "<pyshell#12>", line 1, in <module>

    ‘123‘+(2,5,8)

TypeError: cannot concatenate ‘str‘ and ‘tuple‘ objects

 

可见:

相同类型的序列可以相加,尽管序列中元素的数据类型是不同的;

不同类型的序列不可以相加;

乘法

用数字x乘以一个序列会生成新的序列,在新的序列中,原来的序列被重置x次;

>>> ‘string‘*5

‘stringstringstringstringstring‘

>>> (‘1‘,‘2‘,‘3‘)*5

(‘1‘, ‘2‘, ‘3‘, ‘1‘, ‘2‘, ‘3‘, ‘1‘, ‘2‘, ‘3‘, ‘1‘, ‘2‘, ‘3‘, ‘1‘, ‘2‘, ‘3‘)

>>> [1,‘2‘,3]*5

[1, ‘2‘, 3, 1, ‘2‘, 3, 1, ‘2‘, 3, 1, ‘2‘, 3, 1, ‘2‘, 3]

 

序列相乘后生成的新序列,类型不变;

 

None、空列表和初始化

空列表可以简单地通过两个中括号进行表示([])。但如果想一个占用10个元素空间,却不包括任何有用内容的列表,需要使用None。它是python内建值,确切含义是“这里什么也没用”。即:

>>> [None]*10

[None, None, None, None, None, None, None, None, None, None]

成员资格

为了检查一个值是否在序列中,可以使用in运算符。

这个运算符检查某个条件是否为真,然后返回相应的值,条件真则返回True,假则返回False;这样的运算符叫做布尔运算符,真值叫布尔值。

>>> permission=‘rw‘

>>> ‘w‘ in permission

True

>>> ‘x‘ in permission

False

>>> users=[‘signjing‘,‘sj‘]

>>> raw_input(‘Enter your name: ‘) in users

Enter your name: sinjing

False

>>> raw_input(‘Enter your name: ‘) in users

Enter your name: sj

True

 

>>> class1=[

[‘stud1‘,18],

[‘stud2‘,20],

[‘stud3‘,22],

[‘stud4‘,17]

]

>>> student1=[‘stud3‘,22]

>>> student2=[‘stud5‘,28]

>>> student1 in class1

True

>>> student2 in class1

False

长度、最大值、最小值

内建函数lenminmax非常有用;

len函数返回序列中所含元素的数量;

min函数和max函数则返回序列中最小和最大的元素。

 

>>> class1=[

[‘stud1‘,18],

[‘stud2‘,20],

[‘stud3‘,22],

[‘stud4‘,17]

]

>>> min(class1)

[‘stud1‘, 18]

>>> max(class1)

[‘stud4‘, 17]

>>> len(class1)

4

 

>>> numbers=[11,33,24]

>>> min(numbers)

11

>>> max(numbers)

33

>>> len(numbers)

3

 

存在的疑问

学习的过程中难免有疑问,暂且记录下来。

 

1序列相乘后得到的序列类型不变,但单元素的元组进行乘法后得到的不是元组;

>>> (‘string‘)*5

‘stringstringstringstringstring‘

>>> (5)*5

25

对元组进行成员资格检查,得到的结果与预想不一致;

>>> (2,3,9) in (1,2,3,9,19)

False