Python 篇章(十)

一、List概念

1. 什么是列表?

  • 列表本质
    • 是一种有序的集合,并且列表是可变的
    • 而且列表中的元素可以是不同类型的
  • 列表就是用 中括号 将 一个或多个元素 括起来的数据列表
    • 例如:
      • [1]
      • ["lemon"]
      • [1, "lemon"]

2. 如何创建列表?

  • 格式:

    • 列表名 = [列表选项1, 列表选项2, 列表选项3,......列表选项n]
  • 示例:

# 创建一个空列表
list1 = []
print(list1)

# 创建一个带有元素的列表
list2 = [10, 20, 30, 40, 50]
print(list2)

# 列表中的数据可以是不同类型
list3 = [10, 10.1, "nice", True, False]
print(list3)
  • 思考:要存储5个人的年龄并求出平均值
  • 解决方法:使用列表
list4 = [10, 20, 30, 40, 50]
index = 0
sum = 0
while index < 5:
    # [index]是list列表的下标
    sum += list4[index]
    index += 1
    if index == 5:
        print("总和年龄:%d" % (sum))
        print("平均年龄:%d" % (sum / index))

二、列表元素的访问

1. 取值

  • 功能:指定取出列表中的元素值,默认取出所有元素值
  • 格式:列表名[下标]
  • 注意:不要越界(下标不能超出可表示的范围,否则会报错)
  • 示例:
list5 = [1, 2, 3, 4, 5]
print(list5[2])

2. 替换

  • 功能:替换掉列表中的元素
  • 格式:列表名[下标] = value
  • 示例:
list6 = [1, 2, 3, 4, 5]
list6[2] = 300
print(list6)

三、列表操作

1. 列表组合

  • 示例:
list7 = [1, 2, 3]
list8 = [4, 5, 6]
list9 = list7 + list8
print("list7 = %s, list8 = %s, list9 = %s" % (list1, list2, list3))

注意: list7list8 列表的元素不会变,我们不过是用了这两个列表定义了一个新的 list9 列表

2. 列表重复

  • 示例:
list10 = [10, 20, 30]
print(list10 * 2)

3.判断元素是否在列表中

  • 示例:
    • 判断 list11 列表里有没有 {5 6} 这两个元素,如果有返回 True,没有返回 False
list11 = [1, 2, 3, 4, 5]
print(5 in list11)        # True
print(6 in list11)        # False

4. 列表截取

  • 功能:从开始下标之后开始截取,截取到结束下标之前
  • 格式:列表名[开始下标:结束下标]
  • 示例:
list12 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list12[2:])
print(list12[:6])
print(list12[2:6])

5. 二维列表

  • 逻辑:这个 list 列表中的元素从某种意义上也是一个列表; 无限制嵌套元素列表
  • 示例:
list13 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list13)          # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(list13[1])       # [4, 5, 6]
print(list13[1][1])    # 5

四、列表方法

大部分和前面字符串的方法一样

1. append()

  • 在 list 列表末尾追加一个新的元素值;但是一次只能追加一个新元素!
  • 示例
list = [1, 2, 3, 4, 5]
print(list)

list.append(6)
print(list)

list.append([7,8,9])
print(list)

2. extend()

  • 在 list 列表的末尾一次性追加另一个列表中的多个元素值; 这个方法可以追加多个元素
  • 示例
list = [1, 2, 3, 4, 5]
list.extend([6, 7.1, "lemon"])
print(list)

3. insert()

  • 在下标处插入一个元素,也就是在下标处的前面插入一个元素,并且原下标向后顺延;但一次只能插入一个!

  • 格式:列表名.insert(下标, 值)

  • 示例

list = [1, 2, 3, 4, 5]

list.insert(0, -1)
print(list)

list.insert(0, [10, 20])
print(list)

4. pop()

  • 移除列表中指定下标处的元素,默认移除最后一个元素,并可以返回被删除的数据
  • 示例
list = [1, 2, 3, 4, 5]
list.pop()
print(list)                  # [1, 2, 3, 4]

list.pop(2)
print(list)                  # [1, 2, 4]

print(list.pop(1), list)     # 2 [1, 4];返回被删除的元素值

5. remove()

  • 只删除列表中指定元素的第一个匹配的结果,后面如果再出现相同元素,一律忽略;
  • 示例
list = [1, 2, 3, 4, 5, 4, 7, 4]

list.remove(4)
print(list)          # [1, 2, 3, 5, 4, 7, 4]

list.remove(4)
print(list)          # [1, 2, 3, 5, 7, 4]

6. clear()

  • 清除列表中所有的元素
  • 示例
list = [1, 2, 3, 4, 5]
list.clear()
print(list)               # []

7. index()

  • 从列表中找出某个元素值的第一个匹配的索引值
  • 示例
list = ["a", "b", "c", "d", "e", "d", "g", "d", "i", "d"]
index1 = list.index("d")
index2 = list.index("d", 8)                            # 从第八个下标开始
print(f"index1 = {index1}\nindex2 = {index2}")         # index1 = 3, index2 = 9

8. count()

  • 查看列表中的元素值出现过多少次
  • 示例
list = [1, 2, 3, 4, 5, 3, 3, 5, 3]
print(list.count(3))                # 4
  • 案例
    • 如何将下面的 list 列表中的 {3} 全部一次性删除
gc_list = [3, 2, 3, 4, 5, 3, 3, 5, 3]
# print(gc_list.count(3))             # 5
num1 = 0
all = gc_list.count(3)
while num1 < all:
    gc_list.remove(3)
    num1 += 1
print(gc_list)                        # [2, 4, 5, 5]

9. len()

  • 统计列表中的元素总数

  • 示例

list = [1, 2, 3, 4, 5]
print(len(list))

10. max() min()

  • 获取列表中的(最大、最小)值
  • 示例
list = [1, 2, 3, 4, 5]

print(max(list))

print(min(list))

11. reverse() 倒序

  • 示例
list = [1, 2, 3, 4, 5]

list.reverse()

print(list)

12. sort 排序 升序

  • 示例
list = [2, 1, 3, 4, 5]

list.sort()

print(list)       # [1, 2, 3, 4, 5]

13. 拷贝

  • 有两种:
    • 浅拷贝(引用拷贝)
    • 深拷贝(内存的拷贝)
  • 浅拷贝示例
list1 = [1, 2, 3, 4, 5]
list2 = list1
list2[1] = 200
print(list1)              # [1, 200, 3, 4, 5]
print(list2)              # [1, 200, 3, 4, 5]
print(id(list1))          # 2970263183944
print(id(list2))          # 2970263183944
  • 深拷贝示例
list1 = [1, 2, 3, 4, 5]
list2 = list1.copy()
list2[1] = 200
print(list1)               # [1, 2, 3, 4, 5]
print(list2)               # [1, 200, 3, 4, 5]
print(id(list1))           # 1849288122952
print(id(list2))           # 1849288123016

14. list 去重复

  • 因为set本身是无序和无重复元素的集合,所以默认会把重复的元素清理掉,从而在将set转换成list列表
  • 示例1
list = [1, 2, 3, 2, "lemon", "lemon"]
list = list(set(list))
print("list = %s " % list, type(list))    # list = [1, 2, 3, 'lemon']  <class 'list'>
  • 示例2
list = [8, 7, 9, 9, "nice", "nice"]
set1 = set(list)                          # {8, 9, 'nice', 7}
list33 = list(set1)
print("list = %s " % list, type(list))    # list33 = [8, 9, 'nice', 7]  <class 'list'>

15. 将元组转成列表

  • 示例1
list1 = list((1, 2, 3, 4))
print(list1)                # [1, 2, 3, 4]
  • 示例2
tuple1 = (1, 2, 3, 4, 5)
list1 = list(tuple1)
print(list1)                # [1, 2, 3, 4, 5]

五、列表的遍历

list = ['html', 'js', 'css', 'python']

# 方法1
print('遍历列表方法1:')
for i in list:
    print ("序号:%s   值:%s" % (list.index(i) + 1, i))


print ('\n遍历列表方法2:')
# 方法2
for i in range(len(list)):
    print ("序号:%s   值:%s" % (i + 1, list[i]))


# 方法3
print ('\n遍历列表方法3:')
for i, val in enumerate(list):
    print ("序号:%s   值:%s" % (i + 1, val))


# 输出结果
遍历列表方法1:
序号:1   值:html
序号:2   值:js
序号:3   值:css
序号:4   值:python

遍历列表方法2:
序号:1   值:html
序号:2   值:js
序号:3   值:css
序号:4   值:python

遍历列表方法3:
序号:1   值:html
序号:2   值:js
序号:3   值:css
序号:4   值:python
posted @   ArMinLi  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示