python之list [ 列表 ]

1. 列表是什么?

  • list [ ]

  • 逗号隔开

  • 是一个容器

  • 可以存放任意类型

列表 == 书包
书包里可以放水杯、衣服、袜子、钱包
钱包里可以放钱、身份证件,可以包套包

2. 列表能干什么?

  • 存储大量数据
  • 有序的
  • 可变的,可以被修改
  • 之前是什么格式放在列表中还是什么格式
  • 可以被迭代

3. 列表的切

方法一: 索引

li = [1,2,3,"123",True]
print(li[3],type(li[3]))
print(li[-1],type(li[-1]))
'''
输出结果
123 <class 'str'>
True <class 'bool'>
'''
# 个人见解
# 切片后还是原来的数据类型

方法二: 切片

li = [1,2,3,"123",True]
print(li[1:4])
'''
[2,3,"123"]
'''

方法三: 索引切片加步长

li = [1,2,3,"123",True]
print(li[1:4:2])
'''
输出结果
[2, '123']
'''
s = "alex"
print(type(s[1:3:1]))   
print(type(li[-1:-4:-1]))
# 切片后还是原来的数据类型

一句话总结

列表切片:

索引:li[2]

切片:li[2:3]

步长:li{2:3:2}

4. 列表的创建

**方法一: **直接创建

li = [1,2,3,'123',True,[1,2,5]] 

方法二: 用list将一个字符串生成

l1 = list()
l1 = list('fhdsjkafsdafhsdfhsdaf')
print(l1)
# 输出结果
['f', 'h', 'd', 's', 'j', 'k', 'a', 'f', 's', 'd', 'a', 'f', 'h', 's', 'd', 'f', 'h', 's', 'd', 'a', 'f']

# 底层使用了for循环  "abc" 可迭代的字符串类型,所以打印出如此内容

一句话总结

列表创建方法:

li = [1,2,3,'123',True,[1,2,5]]

l1 = list('fhdsjkafsdafhsdfhsdaf')

5. 列表的增

5.1 append('要插入的内容') (结果:会在末尾追加)

方法: 直接添加元素

li = [1,2,3,'alex',3,[1,2,3]]
li.append('太亮') # 追加  添加在末尾  添加的操作
'''
输出结果
[1,2,3,'alex',3,[1,2,3],'太亮']
'''

5.2 instert(索引,'要插入的内容') (结果:效率低)

方法: 索引,元素

li.insert(0,"大象")           
# 插入 第一个参数(索引),第二参数要插入的内容

5.3 extend('要添加内容')(结果:迭代添加,字符会拆开)

方法:直接添加元素, 不可迭代对象: int bool

li = [1,2,3]
li.append('abc')
print(li)
'''
[1,2,3,'a','b','c']
'''

5.4 列表的合并(两列表拼接成一个)

用法:+在一起

l2 = [1,2,3,'abc']
l3 = [7,8,9,'hello']
print(l2 + l3)
[1,2,3,'abc',7,8,9,'hello']

一句话总结

列表增加方法:

append('内容') 特点:默认字尾添加

instert(索引,'内容') 特点:效率低

extend('内容') 特点:迭代,字符串会拆开

6. 列表的删

6.1 pop('被删除元素/不写是默认删除最后元素')(结果:有返回值,返回的值是被删除的内容)

方法一:默认删除最后一个元素且有返回值,是被删除的元素

# 思考删除abc
li = [1,2,3,'abc']
li.pop()
print(li)
print(li.pop())
'''
输出结果
[1,2,3] #删除后的列表
abc # 被删除的元素
''' 
# abc被删除

方法二:根据索引删除元素

li = [7,8,9,'abc']
li.pop(2)
print(li)
'''
输出结果
[7,8,abc]
'''

一句话总结

pop删除的3种方式:
  • 默认删除尾部li.pop()
  • 直接删除元素li.pop('abc')
  • 直接删除索引,删除的就是对应的元素li.pop(2)
pop删除有返回值,返回值是被删除的元素,打印方式print(li.pop())

本节习题:

列表li = [1,2,3,'abc'],请用2种方法删除元素'abc'

6.2 remove('被删除的元素') (通过元素删除)

方法: 按照元素名删除

li = [1,2,3,'abc',True]
li.remove(1)
print(li)
[2,3,'abc',True]

一句话总结

remove('元素'), 从左向右删除,有同名的删除左侧的第一个

6.3 del 列表名 (删除整个列表)

方法一:del li 删除整个列表

li = [1,2,3,"abc",True]
del li
print(li)
'''
输出结果
NameError: name 'li' is not defined, li列表没有被定义
'''

方法二: 索引删除

del li[2]

方法三: 切片删除

del li[0:3]

方法四: 步长删除

del li[::2]

一句话总结:

del li 整个列表

del [2] 索引

del [2:3] 切片

del [2:3:2] 步长

6.4 clear() 清空,得到一个空列表

方法:

li.clear() # 格式
print(li)
[]

7. 列表的改

方法一: 通过索引的改

li = ["水杯",2,3,"abc",]
li[-1] = "奶瓶" # 将'abc'改成奶瓶
print(li)
'''
["水杯",2,3,"奶瓶",]
'''

li[1] = [1,2,3] # 将元素改成一个列表
'''
["水杯",[1,2,3],3,"abc",]
'''

方法二: 通过切片的改

  • 可多可少
  • 可以指定空
li = ["水杯",2,3,"abc",]
li[0:3] = [1,2,3],[1234]
'''
[[1, 2, 3], [1234], 'abc']
'''
# 将0-3改成[1,2,3],[1234]
li[0:4] = [1,2,3],[1234]
'''
[[1,2,3],[1234]]
'''

方法三: 通过步长的改 取几个就放几个 不能多不能少

li = ["水杯",2,3,"abc",]
li[0:3:2] = [1,2,3],[1234]
print(li)
'''
[[1, 2, 3], 2, [1234], 'abc']
'''

8. 列表的查

方法: 通过索引查

li = ['abc',5,'太白','老吉普','d']
print(li[3])
'''
老吉普
'''

方法: 通过切片

li = ['abc',5,'太白','老吉普','d']
print(li[1:4])
'''
[5,'太白','老吉普']
'''

方法: 通过步长

li = ['abc',5,'太白','老吉普','d']
print[li[1:4:2]]
'''
[5,'老吉普']
'''

方法: 通过for循环

li = ['abc',5,'太白','老吉普','d']
for i in li:
  print(i)
'''
['abc',5,'太白','老吉普','d']
'''

9. 列表的嵌套

li = ["水杯","衣服","鞋子","书","电脑","屁",["手机","钥匙",["身份证","银行卡"]],]
l2 = li[6]
print(l2)
'''
["手机","钥匙",["身份证","银行卡"]]
'''
l3 = l2[2]
print(l3)
'''
["身份证","银行卡"]
'''
l4 = l3[1]
print(l4)
'''
银行卡
'''
可以写成如下:
l5 = li[6][2][1] # 第一个列表的索引6内部列表索引2,再内部列表索引1
print[l5]
'''
银行卡
'''

列表习题:

li = [1,2,3,"123",True]
1. 用学过的方法输出以下结果
123 <class 'str'>
True <class 'bool'>
[2,3,"123"]
[2, '123']
2. 查看下s = "alex"的数据类型

li = ["水杯",2,3,"abc",]
3. 两种方法将abc删除

li = [1,2,3,'alex',3,[1,2,3]]
4. 在列表末尾添加一个'太白'
5. 低效率方法在第一个位置插入一个'大象'
6. 用两种方法在列表末尾位置添加一个'a','b','c'

l3 = [1,2,3]
l2 = ["a","b","c"]
7. 将这两个列表合并成一个

li = [1,2,3,"abc",True]
8. 将这个列表中的'abc'删除
9. 两种方法将这个列表中的True删除

li = [1,2,3,'abc']
10. 将第二个字符改成一个列表
11. 用改的方法将列表里元素2和3删除

li = [1,2,3,4,"abc",5]
li[0:2] = "ABC"
12. 上题结果

li = ["水杯",2,3,"abc",]
13. 将'水杯'和3分别改成[1,2,3],[1234]

li = ["水杯",2,3,"abc",]
14. 将列表变成这样[[1,2,3],[1234]]

li = ["水杯","衣服","鞋子","书","电脑","屁",["手机","钥匙",["身份证","银行卡"]],]
15. 将'银行卡'提取出来
posted @ 2019-06-08 11:07  爱咋闹  阅读(304)  评论(0编辑  收藏  举报