1.列表的定义
列表是用一对[]表示,空列表也可以用list()表示
定义:是为了存储多个有序的数据(列表元素可以是任意的数据类型没有限制)
test=['1',12,1.2,['a',1],(1,2),{'name':'zhangsan'}]
print(test)
运行结果:
['1', 12, 1.2, ['a', 1], (1, 2), {'name': 'zhangsan'}]
2.列表的索引和切片
列表的索引、切片和字符串的索引、切片一毛一样,想了解的小伙伴可参考此篇文章
Python字符串的基本操作_晒不黑的黑煤球的博客-CSDN博客
test=['1',12,1.2,['a',1],(1,2),{'name':'zhangsan'}]
print(test[2])
print(test[-1])
print(test[0:3])
print(test[0:-2])
print(test[::-1])
运行结果:
1.2
{'name': 'zhangsan'}
['1', 12, 1.2]
['1', 12, 1.2, ['a', 1]]
[{'name': 'zhangsan'}, (1, 2), ['a', 1], 1.2, 12, '1']
注意:索引超出范围报错,切片超出范围不会报错,会把整个列表打印出来
列表的索引取出的数据类型,该元素是什么类型,取出的就是什么类型
test=['1',12,1.2,['a',1],(1,2),{'name':'zhangsan'}]
print(type(test[0]))
print(type(test[1]))
print(type(test[2]))
print(type(test[3]))
print(type(test[4]))
print(type(test[-1]))
print(test[:101000000])
运行结果:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'list'>
<class 'tuple'>
<class 'dict'>
['1', 12, 1.2, ['a', 1], (1, 2), {'name': 'zhangsan'}]
3.列表的嵌套
嵌套的层数没有限制,但通常不能会这么做
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
print(test[3])
print(test[3][1])
print(test[3][1][1])
运行结果:
['a', ['aa', 'bb']]
['aa', 'bb']
bb
4.列表的增删改方法
4.1列表的增加
4.1.1 append()方法
append是增加到列表的最后
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.append('lucy')
print(test)
运行结果:
['1', 12, 1.2, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}, 'lucy']
4.1.2 insert()方法
增加到指定位置,通过索引增加
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.insert(0,'lucy')
print(test)
运行结果:
['lucy', '1', 12, 1.2, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}]
4.1.2 extend()方法
同时增加多个元素到列表最后
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.extend(['lucy','suxi','lj'])#注意增加多个元素时要用[]列表
print(test)
运行结果:
['1', 12, 1.2, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}, 'lucy', 'suxi', 'lj']
4.2列表的删除
删除是谨慎的操作,一次只能删除一个列表元素
4.2.1 remove()方法
根据列表中元素删除
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.remove(1.2)
print(test)
test.remove(['a',['aa','bb']])
print(test)
运行结果:
['1', 12, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}]
['1', 12, (1, 2), {'name': 'zhangsan'}]
4.2.2 pop()方法
根据列表索引删除
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.pop()#索引不写,默认删除最后一个元素
print(test)
test.pop(3)
print(test)
test.pop(-2)
print(test)
运行结果:
['1', 12, 1.2, ['a', ['aa', 'bb']], (1, 2)]
['1', 12, 1.2, (1, 2)]
['1', 12, (1, 2)]
4.2.3 del方法
根据列表索引删除
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
del test[0]
print(test)
del test[-2]
print(test)
运行结果:
[12, 1.2, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}]
[12, 1.2, ['a', ['aa', 'bb']], {'name': 'zhangsan'}]
列表多层嵌套如何删除里层元素
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
#删除最里层的aa,先找到它的位置,然后再删除
test[3][1].remove('aa')
print(test)
#删除bb
test[3].pop(1)
print(test)
#删除字典中name
test[5].pop('name')
print(test)
del test[3][0]
print(test)
运行结果:
['1', 12, 1.2, ['a', ['bb']], (1, 2), {'name': 'zhangsan'}]
['1', 12, 1.2, ['a'], (1, 2), {'name': 'zhangsan'}]
['1', 12, 1.2, ['a'], (1, 2), {}]
['1', 12, 1.2, [], (1, 2), {}]
4.2.4 clear()方法
清除列表中所有元素
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test.clear()
print(test)
运行结果:
[]
4.3列表的修改
test=['1',12,1.2,['a',['aa','bb']],(1,2),{'name':'zhangsan'}]
test[1]='lisi'
print(test)
运行结果:
['1', 'lisi', 1.2, ['a', ['aa', 'bb']], (1, 2), {'name': 'zhangsan'}]
5.列表的排序
通常是对数字进行排序,字符串排序用的少(字符按ASCII字符排序:大写在前,小写在后)
5.1 sort()方法
正序排列
test=[1,232,23,45346]
test.sort()
print(test)
运行结果:
[1, 23, 232, 45346]
扩展内容:
test=[1,232,23,45346]
test.sort(reverse=False)#表示正序排列
print(test)
[1, 23, 232, 45346]
5.2 reverse()方法
倒序排列
test=[1,232,23,45346]
test.reverse()
print(test)
运行结果:
[45346, 23, 232, 1]
扩展内容:
test=[1,232,23,45346]
test.sort(reverse=True)#表示倒序排列
print(test)
[45346, 232, 23, 1]