python基础1

列表(list)

  • 特点:有序、可变、元素可重复;使用[]定义,元素用逗号分隔;支持索引、切片、增删改查。

  • 常用操作

    # 创建
    lst = [1,2,3,'hello',3.14]
    
    # 访问
    print(lst[0])	# 1
    print(lst[-1])	# 3.14
    print(lst[1:3])	# [2,3]
    
    # 修改
    lst[0] = 100
    
    # 添加
    lst.append(4)	# 末尾加一个
    lst.insert(1,99)	# 指定位置插入
    lst.extend([5,6])	# 扩展另一个列表
    
    # 删除
    lst.pop()		# 删除并返回最后一个
    lst.pop(2)		# 删除索引2的元素
    lst.remove(99)	# 删除第一个匹配的值
    del lst[0]		# 删除索引0
    lst.clear()		# 清空列表
    
    # 查找
    lst.index(3)	# 返回第一个3的索引
    3 in lst		# True
    lst.count(3)	# 元素3出现次数
    
    # 排序
    lst.sort()		# 升序(改变原列表)
    lst.sort(reverse=True)	# 降序
    sorted(lst)		# 返回新列表,原列表不变
    lst.reverse()	# 反转
    
    # 长度
    len(lst)
    

元组(tuple)

  • 特点:有序、不可变、元素可重复;使用()定义,单元素元组需加都好(1,);适合存储不需要修改的数据

  • 常用操作

    # 创建
    t = (1,2,3,'a')
    t2 = 4,5,6		# 不加括号也可
    t3 = (7,)		# 单元素元组
    
    # 访问(和列表一样)
    print(t[0])		# 1
    print(t[-1])	# 'a'
    print(t[1:3])	# (2,3)
    
    # 不可修改:t[0] = 10 会报错
    
    # 其他操作
    t.index(2)		# 1
    2 in t			# True
    t.count(3)		# 1
    len(t)			# 4
    
    # 元组解包
    a,b,c = (1,2,3)		# a=1,b=2,c=3
    a,*rest = (1,2,3,4)	 # a=1,rest=[2,3,4]
    

字典(dict)

  • 特点:无序、可变、键值对;键必须唯一且不可变(常用字符串、数字、元组),值可以是任意类型;使用{}定义,

  • 常用操作

    # 创建
    d = {'name':'Alice','age':25,'city':'Beijing'}
    d2 = dict(name='Bob',age=30)
    
    # 访问
    print(d['name'])		# Alice
    print(d.get('age'))		# 25,不存在时返回None
    print(d.get('salary',0))	# 不存在,返回默认值0
    
    # 修改 / 添加
    d['age'] = 26		# 修改
    d['job'] = 'engineer'	# 添加
    
    # 删除
    del d['city']		# 删除键值对
    d.pop('age')		# 删除并返回值
    d.popitem()			# 删除并返回最后插入的键值对
    
    # 遍历
    for key in d:		# 遍历键
    for key,value in d.items():		# 遍历键值对
    for value in d.values():		# 遍历值
    
    # 合并
    d.update({'score':90,'age'':27})	# 更新或添加
    
    # 其他
    len(d)
    'name' in d			# 判断键是否存在
     d.clear()			# 清空
    

集合

  • 特点:无序、可变、元素唯一(自动去重);使用{}定义,但不能是空{}(这样是空字典),空集可以用set{};元素必须是不可变类型(数字、字符串、元组)

  • 常用操作

    # 创建
    s = {1,2,3,2,1}		# {1,2,3}
    s2 = set([1,2,3,3])		# 从列表创建
    s3 = set('hello')		# {'h','e','l','o'}
    
    # 添加 / 删除
    s.add(4)		# 添加
    s.update([5,6,7])		# 添加多个
    S.remove(3)				# 删除,不存在报错
    s.discard(10)			# 删除,不存在不报错
    s.pop()					# 随机删除并返回一个元素
    s.clear()
    
    # 集合运算
    a = {1,2,3}
    b = {3,4,5}
    a | b			# 并集:{1,2,3,4,5}
    a & b			# 交集:{3}
    a - b			# 差集:{1,2}
    a ^ b			# 对称差:{1,2,4,5}
    
    # 判断
    a.issubset(b)		# a是否b的子集
    a.issuperset(b)		# a 是否是 b 的超集
    len(a)
    

列表推导式

列表推导式提供了一种简洁、高效的方式从一个可迭代对象生成新列表。本质上是for循环,但速度更快、可读性更好(简单情况下)。

  1. 基本语法

    [表达式 for 变量 in 可迭代对象]
    
    # 示例(生成0-9的平方列表)
    # 普通写法
    squares = []
    for i in range(10):
        squares.append(i**2)
        
    # 列表推导式
    squares = [i**2 for i in range(10)]
    print(squares)		# [0,1,4,9,16,25,36,49,64,81]
    
    
  2. 带条件的列表推导式

    [表达式 for 变量 in 可迭代对象 if 条件]
    
    # 示例(只保留偶数)
    even_numbers = [i for i in range(20) if i % 2 == 0]
    print(even_numbers)		# [0,2,4,...,18]
    
  3. 带if_else的列表推导式(条件表达式放在前面)

    [真值表达式 if 条件 else 假值表达式 for 变量 in 可迭代对象]
    
    # 示例(将奇数替换为-1,偶数保留
    result = [i if i % 2 == 0 else -1 for i in range(10)]
    print(result)		# [0,-1,2,-1,4,-1,6,-1,8,-1]
    
  4. 嵌套循环的列表推导式

    [表达式 for 变量1 in 可迭代对象1 for 变量2 in 可迭代对象2]
    
    # 示例(生成(x,y)坐标对
    pairs = [(x,y) for x in range(3) for y in range(2)]
    print(pairs)		# [(0,0),[0,1],(1,0),(1,1),(2,0),(2,1)]
    
    # 普通写法
    pairs = []
    for x in range(3):
        for y in range(2):
            pairs.append((x,y))
            
    # 示例2(矩阵转置(3行2列->2行3列)
    matrix = [[1,2,3],
              [4,5,6]]
    transpose = [[row[i]for row in matrix] for i in range(3)]
    print(transpose)		# [[1,4],[2,5],[3,6]]
    
    
  5. 结合多个条件

    [i for i in range(100) if i % 2 == 0 if i % 3 == 0]
    # 等价于:i能被2且能被3整除 -> 即能被6整除
    
    # 也可使用and
    [i for i in range(100) if i % 2 == 0 and i % 3 == 0]
    
    
  6. 使用函数或复杂表达式

    words = ['hello','world','python']
    lengths = [len(w) for w in words]	# [5,5,6]
    upper_words = [w.upper() for w in words]	# ['HELLO','WORLD','PYTHON']
    
    

列表推导式是 Python中最常用的函数式编程技巧之一,熟练掌握可以大大提升代码的简洁性和可读性。建议多加练习,从简单的平方、过滤开始,逐步尝试嵌套循环和条件判断。

posted @ 2026-06-10 14:49  稀碎,  阅读(3)  评论(0)    收藏  举报