Python基础(三)-列表和元组

2020-05-25  本文已影响0人  皮卡丘的电光一闪
列表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')
上一篇下一篇

猜你喜欢

热点阅读