列表的使用

列表是我们最以后最常用可变有序的数据类型,通过列表可以对数据实现最方便的存储、修改等操作。

 1 定义列表
 2 
 3 names = ['lhl',"tom",'jack']
 4 通过下标访问列表中的元素,下标从0开始计数
14 >>> names[0]
15 'lhl'
16 >>> names[2]
17 'jack'
18 >>> names[-1]
19 'jack'
20 >>> names[-2] #还可以倒着取
21 'tom'

切片:取多个元素

 1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
 2 >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
 3 ['Tenglan', 'Eric', 'Rain']
 4 >>> names[1:-1] #取下标1至-1的值,不包括-1
 5 ['Tenglan', 'Eric', 'Rain', 'Tom']
 6 >>> names[0:3] 
 7 ['Alex', 'Tenglan', 'Eric']
 8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
 9 ['Alex', 'Tenglan', 'Eric']
10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
11 ['Rain', 'Tom', 'Amy'] 
12 >>> names[3:-1] #这样-1就不会被包含了
13 ['Rain', 'Tom']
14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
15 ['Alex', 'Eric', 'Tom'] 
16 >>> names[::2] #和上句效果一样
17 ['Alex', 'Eric', 'Tom']

追加

1 >>> names
2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
3 >>> names.append("我是新来的")
4 >>> names
5 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

插入

>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.insert(2,"强行从Eric前面插入")
>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']

>>> names.insert(5,"从eric后面插入试试新姿势")
>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

修改

>>> names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> names[2] = "该换人了"
>>> names
['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']

删除

>>> del names[2] 
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
>>> del names[4]
>>> names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> 
>>> names.remove("Eric") #删除指定元素
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
>>> names.pop() #删除列表最后一个值 
'我是新来的'
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']

扩展

>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
>>> b = [1,2,3]
>>> names.extend(b)
>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

拷贝

>>> names
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

>>> name_copy = names.copy()
>>> name_copy
['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]

统计

>>> names
['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
>>> names.count("Amy")
2

排序&翻转

>>> names
['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
>>> names.sort() #排序
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
>>> names[-3] = '1'
>>> names[-2] = '2'
>>> names[-1] = '3'
>>> names
['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
>>> names.sort()
>>> names
['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']

>>> names.reverse() #反转
>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']

获取下标

>>> names
['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
>>> names.index("Amy")
2 #只返回找到的第一个下标

元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

语法:

1
names = ("alex","jack","eric")

它只有2个方法,一个是count,一个是index

列表:任意字符有序的集合。
变量名=【“值1”,“值2”,“值3”】
变量名=【“起始值”,“结束值”,“步长”】
下标从左到右从0开始
下标从右到左从-1开始
name[1:3] 取出1和2的值,3不取,顾头不顾尾
name[-2:] 去倒数第二和之后的
name.append("值") 追加值。默认到最后一位
name.insert(1,"值") 插在1的位置,就是第二值
name[2]="值"   把2位置的值改成新的
name.remove("值")  删除莫个值
del name[1]  删除莫个位置的值
name.pop()   删除最后一个,即是-1位置的值
print(name.index("值"))  查莫个值的下标   
print(name.count("值")) 统计这个值有多少个
name.clear() 清空值
name.reverse()  值反转,倒过顺序排序
name.sort()  按字母大小前后排序,特殊符号在前面,按ascii编码排序
name.extend(列表名) 两个列表合并,合并的在后面。被合并的列表还存在
namexin=name.copy()  把name列表值拷贝到namexin列表。浅拷贝。namexin改变了值,name也会跟着改变.
想要完整拷贝要import copy
namexin=copy.deepcopy(name) 深拷贝
浅拷贝:
namexin=copy.copy(name)
namexin=name[:]
namexin=list(name)
 
alst=[0,1,2,3,4,5]
len(alst):返回alst的元素数长度
min(alst):返回alst中的最小值
max(alst):返回alst中的最大值
sum(alst,15):返回所有元素的和,连同15一起加起来
all(alst):alst中所有项为真,则返回真,否则返回假
any(alst):alst中有一项为真,则返回真,否则返回假
注意:min(),max()函数要求序列中的元素能比较大小,sum()函数要求序列中要求元素只能是int 或float类型。 
 
 
原文地址:https://www.cnblogs.com/xuepython/p/6625873.html