列表list
内置的一种数据类型是列表:list。list是一种有序合计,可以随时添加和删除其中的元素。
>>> classmates = ['Michael', 'Bob', 'Tony']
>>> classmates
['Michael', 'Bob', 'Tony']
# 用len()函数可以获得list元素的个数
>>> len(classmates)
3
# 用索引访问list中每一个位置的元素,索引是从0开始的
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tony'
>>> classmates[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
如果要取得最后一个溯源,除了计算索引位置外,还可以用-1直接获取最后一个元素
>>> classmates[-1]
'Tony'
list是一个有序列表,可以往list中追加元素到末尾、指定的位置,删除末尾的元素,删除指定位置的元素,替换某个元素。
# 追加元素到末尾append(obj)
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tony', 'Adam']
# 追加元素到指定的位置 insert(index, obj)
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tony', 'Adam']
# 删除末尾的元素pop()
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tony']
# 删除指定位置的元素pop(index)
>>> classmates.pop(1)
>>> classmates
['Michael', 'Bob', 'Tony', 'Adam']
# 替换某个元素
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tony']
list中的元素,数据类型也可以不同
>>> L = ['Apple', 123, True]
元组tuple
另一种有序列表叫元组:tuple,和list非常类似,但是tuple一旦初始化就不能修改,它没有append(),insert()这种方法,不过它获取元素的方法和list是一样。
当定义只有一个元素的tuple的时候,当t = (1)时,控制台输出的是1 不是(1),小括号会被认为是数学公式中的小括号,会产生歧义,所以,当只有一个元素的tuple定义时,必须加一个逗号消除歧义
>>> t = (1)
1
>>> t = (1,)
(1,)
最后看一个'可变的'tuple
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
为什么说t是一个可变的tuple,不是说tuple是定义后不可变的吗?
从上述t可以看出,t包含三个元素,两个字符串,一个list列表。从表面上看,tuple的元素确实发生了改变,但是,其实改变的是tuple中第三个元素list的元素,但tuple第三个元素的指向没有发生改变。如果将tuple中的第三个元素指向另外的list或者别的数据类型,就会报错。即:
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2] = 'c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
list的函数和方法
序号 | 函数(方法) |
---|---|
1 |
list.append(obj) 在列表末尾添加新的对象 |
2 |
list.count(obj) 统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 |
list.insert(index, obj) 将对象插入列表 |
6 |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 |
list.reverse() 反向列表中元素 |
9 |
list.sort( key=None, reverse=False) 对原列表进行排序 |
10 |
list.clear() 清空列表 |
11 |
list.copy() 复制列表 |
12 |
len(list) 列表元素个数 |
13 |
max(list) 返回列表元素最大值 |
14 |
min(list) 返回列表元素最小值 |
15 |
list(seq) 将元组转换为列表 |
tuple的内置方法
序号 | 方法及描述 | 实例 |
---|---|---|
1 |
len(tuple) 计算元组元素个数。 |
>>> tuple1 = ('Google', 'Runoob', 'Taobao')>>> len(tuple1) 3 |
2 |
max(tuple) 返回元组中元素最大值。 |
>>> tuple2 = ('5', '4', '8')>>> max(tuple2) '8' |
3 |
min(tuple) 返回元组中元素最小值。 |
>>> tuple2 = ('5', '4', '8')>>> min(tuple2) '4' |
4 | ** tuple(iterable)** 将可迭代系列转换为元组。 |
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']>>> tuple1=tuple(list1)>>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu') |
网友评论