1. 认识列表

看一下我们在变量那一节创建的列表

  1. list1 = ['张三丰', '宋远桥、俞莲舟、俞岱岩、张松溪、张翠山、殷梨亭、莫声谷', '太极拳', '太极剑']

与字符串不同的是

  • 结构不同,以[ ]来包裹,每个元素用半角的逗号’,’隔开
  • 字符串就是一串字符,而列表可以放任意多个字符串,不止是字符串,其它数据类型也可以放,例如: ```python list1 = [1, ‘金庸’, [1,’jianghu’], (‘haha’, 1, ‘呵呵’), {‘郭靖’:’降龙十八掌’, ‘杨过’:’黯然销魂掌’},{‘12’, 1, 2, 2, 2}] list1这个列表里,包含了:数字、字符串、列表、元祖、字典、集合六种数据类型 p rint(list1) 执行结果: [1, ‘金庸’, [1, ‘jianghu’], (‘haha’, 1, ‘呵呵’), {‘郭靖’: ‘降龙十八掌’, ‘杨过’: ‘黯然销魂掌’}, {1, 2, ‘12’}]

下标

print(list1[0]) # 1 print(list1[1]) # 金庸

切片

print(list1[0:4]) 执行结果: [1, ‘金庸’, [1, ‘jianghu’], (‘haha’, 1, ‘呵呵’)]

  1. **与字符串相同的是:**
  2. - 都支持下标和切片,规则相同
  3. - 列表是有序的,每个元素都有自己固定的位置
  4. <a name="Vi0Wx"></a>
  5. ## 2. 循环遍历
  6. <a name="uc78b"></a>
  7. #### 2-1. 使用for循环
  8. ```python
  9. list1 = [1, '金庸', [1,'jianghu'], ('haha', 1, '呵呵'), {'郭靖':'降龙十八掌', '杨过':'黯然销魂掌'},{'12', 1, 2, 2, 2}]
  10. for i in list1:
  11. print(i)
  12. 执行结果:
  13. '''
  14. 1
  15. 金庸
  16. [1, 'jianghu']
  17. ('haha', 1, '呵呵')
  18. {'郭靖': '降龙十八掌', '杨过': '黯然销魂掌'}
  19. {1, 2, '12'}
  20. '''

2-2. while循环

  1. list1 = [1, '金庸', [1,'jianghu'], ('haha', 1, '呵呵'), {'郭靖':'降龙十八掌', '杨过':'黯然销魂掌'},{'12', 1, 2, 2, 2}]
  2. length = len(list1) # 计算列表的长度,即有多少个元素组成
  3. a = 0
  4. while a<length:
  5. print(list1[a])
  6. a+=1

3. 列表的增删查改和排序

3-1. 向列表中添加元素

append 直接向列表中添加元素
extend 可以将另一个集合中的元素逐一添加到列表中
insert insert(index, object) 在指定位置index前插入元素object
  1. # 创建列表1
  2. list1 = ['段誉', '一阳指', '北冥神功', '凌波微步']
  3. # 向列表中添加字符串“六脉神剑”
  4. list1.append('六脉神剑')
  5. print(list1)
  6. # ['段誉', '一阳指', '北冥神功', '凌波微步', '六脉神剑']
  7. # 将元祖list2中的元素都添加到列表中
  8. list2 = ('木婉清','钟灵', '王语嫣')
  9. list1.extend(list2)
  10. print(list1)
  11. # ['段誉', '一阳指', '北冥神功', '凌波微步', '六脉神剑', '木婉清', '钟灵', '王语嫣']
  12. # 在制定位置插入指定内容:insert()
  13. list1.insert(1, '爱美人不爱江山')
  14. print(list1)
  15. # ['段誉', '爱美人不爱江山', '一阳指', '北冥神功', '凌波微步', '六脉神剑', '木婉清', '钟灵', '王语嫣']

3-2. 修改元素

通过下标即可

  1. list1 = ['段誉', '一阳指', '北冥神功', '凌波微步']
  2. list1[1] = '泡妞一流'
  3. print(list1)
  4. # ['段誉', '泡妞一流', '北冥神功', '凌波微步']

3-3. 查找元素

成员运算符:in, not in,
内置方法:index, count

  1. list1 = ['段誉', '一阳指', '北冥神功', '凌波微步']
  2. # 判断’一阳指‘是否在列表list1中。使用in。
  3. if '一阳指' in list1:
  4. print('段誉会一阳指')
  5. else:
  6. print('段誉不会一阳指')
  7. # 段誉会一阳指

3-4. 删除元素

三种方法:

del 根据下标进行删除
pop 删除最后一个元素
remove 根据元素的值进行删除
  1. list1 = ['段誉', '一阳指', '北冥神功', '凌波微步', '俘虏女人心']
  2. # 删除下标为2的元素
  3. del list1[2]
  4. print(list1)
  5. # ['段誉', '一阳指', '凌波微步', '俘虏女人心']
  6. # 删除最后一个元素
  7. list1.pop()
  8. print(list1)
  9. # ['段誉', '一阳指', '北冥神功', '凌波微步']
  10. # 删除’凌波微步‘
  11. list1.remove('凌波微步')
  12. print(list1)
  13. # ['段誉', '一阳指', '北冥神功', '俘虏女人心']

3-5. 排序(sort/reverse)

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

sort() 对源列表进行修改 list.sort()
reverser() 将list逆置。 list.reverse()
sorted 重建一个列表,所以必须有变量名接收 list2 = sorted(list)
  1. list2 = [2,3,5,1,2,6,9,5,4,2]
  2. list2.sort()
  3. print(list2)
  4. # [1, 2, 2, 2, 3, 4, 5, 5, 6, 9]
  5. list2.reverse()
  6. print(list2)
  7. # [2, 4, 5, 9, 6, 2, 1, 5, 3, 2]
  8. list3 = sorted(list2)
  9. print(list3)
  10. # [1, 2, 2, 2, 3, 4, 5, 5, 6, 9]