程序员

Python学习笔记--list与tuple

2017-04-23  本文已影响0人  琉璃飞瑾
Python学习笔记--list与tuple


1.使用[ ]将list的所有元素都括起来,就是一个list对象

>>> l=['Liu',18,True]
>>> print l
['Liu', 18, True]

python是动态语言,所以list里可以放不同类型的数据

2.一个元素也没有的list,就是空list

>>> j = []
>>> type(j)
>>> print j
[]

3.根据下标访问list

>>> print l
['Liu', 18, True]
>>> l[0]
'Liu'

4.倒序访问

>>> print l
['Liu', 18, True]
>>> l[-1]
True
>>> l[-2]
18
>>> l[-3]
'Liu'

倒序下标从-1开始

5.添加元素

方法一:append()

>>> print l
['Liu', 18, True]
>>> l.append('Wen')
>>> print l
['Liu', 18, True, 'Wen']

方法二:insert()

>>> print l
['Liu', 18, True, 'Wen']
>>> l.insert(1,'insert')
>>> print l
['Liu', 'insert', 18, True, 'Wen']

第一种为末尾插入,第二种为任意位置插入,比第一种方法灵活。

6.删除元素

方法:pop()

返回:被删除的元素

(1)情况一(带下标):

>>> print l
['Liu', 'insert', 18, True, 'Wen']
>>> l.pop(3)
True
>>> print l
['Liu', 'insert', 18, 'Wen']

(2)情况二(不带下标):

>>> print l
['Liu', 'insert', 18, 'Wen']
>>> l.pop()
'Wen'
>>> print l
['Liu', 'insert', 18]

不带下标的pop方法,默认删除最后一个元素。

7.替换元素

>>> print l
['Liu', 'insert', 18]
>>> l[-1]=19
>>> print l
['Liu', 'insert', 19]

8.特殊的有序list—tuple(元组)

(1)使用( )将元素括起来

(2)一旦创建完毕,就无法修改。

所以tuple没有append()、insert()和pop()

(3)通过下标索引元素,但是不能再赋值为别的元素

(4)包含 0 个元素的 tuple,也就是空tuple,直接用 ()

包含1个元素的 tuple时不能按照如下的方法创建:

>>> t = (1)
>>> print t
1
>>> type(t)
<type 'int'>

析:

因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。

解决:

Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

>>> t = (1,)
>>> print t
(1,)
>>> type(t)
<type 'tuple'>

9.'可变'的tuple

例子:

>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])

不是说tuple一旦定义后就不能改变了吗?怎么现在又可以改变了呢?

分析:

当我们定义tuple的时候:

Python学习笔记--list与tuple

当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:

图片2

tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

10.切片

格式:list[x:y:z]

解析:

x表示切片开始的位置
y表示切片到哪里结束
z表示切片间隔数

负数用在从序列尾开始计算的位置

切片的操作类型:

con[start_index]:返回索引值为start_index的对象。start_index为 -len(con)到len(con)-1之间任意整数。

con[start_index: end_index]:返回索引值为start_index到end_index-1之间的连续对象。

con[start_index: end_index : step]:返回索引值为start_index到end_index-1之间,并且索引值与start_index之差可以被step整除的连续对象。

con[start_index: ]:缺省end_index,表示从start_index开始到序列中最后一个对象。

con[: end_index]:缺省start_index,表示从序列中第一个对象到end_index-1之间的片段。

con[:]:缺省start_index和end_index,表示从第一个对象到最后一个对象的完整片段。

con[::step]:缺省start_index和end_index,表示对整个序列按照索引可以被step整除的规则取值。

举例:

str[6:] #截取第七个字符到结尾

str[:] #截取字符串的全部字符

str[0:3] #截取第一位到第三位的字符

str[:-3] #截取从头开始到倒数第三个字符之前

str[2] #截取第三个字符

str[-1] #截取倒数第一个字符

str[::-1] #创造一个与原字符串顺序相反的字符串

str[-3:-1] #截取倒数第三位与倒数第一位之前的字符

str[-3:] #截取倒数第三位到结

str[:-5:-3] #逆序截取

上一篇下一篇

猜你喜欢

热点阅读