📜  Python操作的复杂性备忘单(1)

📅  最后修改于: 2023-12-03 15:34:29.770000             🧑  作者: Mango

Python操作的复杂性备忘单

Python是一种高级编程语言,它以其简单易学、高效灵活而广受欢迎。但是,即使像Python这样直截了当的语言,仍然存在一些复杂的操作和难以掌握的坑。以下是你需要知道的几个方面:

列表

列表是Python中最常用的数据结构之一,其元素按顺序存储,可以通过索引访问。以下是一些注意点:

  • 切片的语法[start:stop:step]。起始下标包括,终止下标不包括。步长可以是任何整数,如果为负数,则从列表末尾向前移动。
a = [1, 2, 3, 4, 5]
print(a[1:4:2])  # 输出 [2, 4]
print(a[::-1])  # 输出 [5, 4, 3, 2, 1]
  • 列表解析。使用一种类似于for循环的语法来快速构建列表。
a = [x**2 for x in range(10) if x % 2 == 0]
print(a)  # 输出 [0, 4, 16, 36, 64]
  • 列表复制。使用a=b[:]来复制整个列表(而不是简单地将b赋值给a,这将使它们指向同一个内存地址)。
b = [1, 2, 3]
a = b[:]  # 复制整个列表
b[0] = 0  # 修改b的第一个元素
print(a)  # 输出 [1, 2, 3]
元组

元组也是一种数据结构,可以存储多个值。与列表不同的是,元组是不可变的,一旦创建就不能修改。以下是一些注意点:

  • 定义元组时可以省略括号,Python会默认将逗号分隔的值视为元组。
a = 'apple', 'banana', 'cherry'
print(a)  # 输出 ('apple', 'banana', 'cherry')
  • 元组解包。可以将元组的元素按顺序分配给多个变量。
a = 'apple', 'banana', 'cherry'
x, y, z = a
print(y)  # 输出 banana
  • 可变元组。虽然元组本身不可变,但是如果元组中包含的元素是可变的(例如列表),那么这些元素可以被修改。
a = ([1, 2], [3, 4])
a[0][0] = 0
print(a)  # 输出 ([0, 2], [3, 4])
字典

字典是一种无序的键值对集合,每个键都必须唯一。以下是一些注意点:

  • 定义字典时使用大括号{}。
a = {'apple': 1, 'banana': 2, 'cherry': 3}
print(a)  # 输出 {'apple': 1, 'banana': 2, 'cherry': 3}
  • 访问字典中的元素。
a = {'apple': 1, 'banana': 2, 'cherry': 3}
print(a['banana'])  # 输出 2
  • 字典解析。
a = {'apple': 1, 'banana': 2, 'cherry': 3}
b = {k: v for k, v in a.items() if v > 1}
print(b)  # 输出 {'banana': 2, 'cherry': 3}
集合

集合是一种无序的、不可重复的元素集合。以下是一些注意点:

  • 定义集合时使用大括号{}。
a = {1, 2, 3}
print(a)  # 输出 {1, 2, 3}
  • 集合的交集、并集、差集、对称差集。
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b)  # 输出 {2, 3},交集
print(a | b)  # 输出 {1, 2, 3, 4},并集
print(a - b)  # 输出 {1},差集
print(a ^ b)  # 输出 {1, 4},对称差集
  • 集合解析。
a = {x**2 for x in range(10) if x % 2 == 0}
print(a)  # 输出 {0, 4, 16, 36, 64}

以上就是Python操作的复杂性备忘单。需要注意的细节和坑还有很多,希望这份备忘单能够帮助到大家。