首页 > 编程语言 >Python3 学习笔记4-列表、元组、字典、集合、条件控制和循环语句

Python3 学习笔记4-列表、元组、字典、集合、条件控制和循环语句

时间:2024-09-07 20:50:10浏览次数:7  
标签:元素 list 列表 print 元组 my Python3 字典

目录

一、列表:

(1)Python3 列表: 

(2) 访问列表中的值:

 (3)列表更新:

(4)列表元素删除: 

(5)列表脚本操作符 :

 (6)列表截取与拼接:

 (7)嵌套列表:

 (8)列表之间比较:

 (9)列表函数使用方法:

 二、元组:

(1)创建元组:

(2)访问元组元素:

(3)元组切片:

(4)元组拼接:

(5)元组重复:

(7)元组内置函数:

(8)元组比较:

(9)注意事项

 三、字典:

(1)创建字典:

(2)访问字典中的值:

(3)修改字典:

(4)删除字典中的元素:

(5)遍历字典:

(6)字典的常用方法:

(7)字典推导式:

(8)注意事项:

 四、集合:

(1)创建集合:

(2)添加元素:

(3)删除元素:

(4)清空集合:

(5)集合运算:

(6)检查成员资格:

(7)遍历集合:

(8)注意事项:

五、 条件控制:

(1)if 语句:

(2)elif 语句:

(3)else 语句:

(4)pass 语句:

(5)嵌套条件:

(6)条件表达式(三元运算符):

 (7)match...case语句:

 六、循环语句:

(1)for 循环:

(2)while 循环:

(3)循环控制语句:

 (4)pass 语句:


一、列表:

在Python中,序列是一种基础且强大的数据结构,用于存储有序的数据集合 。

(1)Python3 列表: 

  • 序列的基本概念:

    • 序列是Python中用于存储有序数据集合的内置数据类型。
    • 每个数据项在序列中都有一个唯一的索引,索引从0开始。
  • Python中的序列类型:

    • Python有6种序列类型的内置类型,包括列表(list)、元组(tuple)、字符串(str)、字节(bytes)、字节数组(bytearray)和内存视图(memoryview)。
    • 最常用的序列类型是列表和元组。
  • 列表(list)的特点:

    • 列表是可变的,意味着可以在列表中添加、删除或更改元素。
    • 列表可以存储不同类型的数据项。
    • 列表使用方括号[]定义,数据项之间用逗号,分隔。
  • 列表的操作:

    • 索引:通过指定索引值可以访问列表中的单个元素。
    • 切片:可以通过切片操作获取列表的一部分。
    • 加法:可以使用+运算符将两个列表连接起来。
    • 乘法:可以使用*运算符重复列表多次。
    • 成员检查:可以使用in关键字检查某个元素是否存在于列表中。
  • 内置方法和函数:

    • len():返回序列的长度。
    • max():返回序列中的最大元素。
    • min():返回序列中的最小元素。
  • 列表的创建:

    • 创建列表时,只需将不同的数据项用逗号分隔,并用方括号括起来。
  • 列表的灵活性:

    • 列表的灵活性体现在可以存储不同类型的数据,并且可以随时修改。
  • 列表的应用:

    • 列表因其灵活性和强大的内置方法,成为Python中使用最广泛的数据类型之一,适用于各种数据处理任务。

(2) 访问列表中的值:

  • 在Python中,访问列表中的值通常通过索引来实现。列表的索引从0开始,这意味着列表中第一个元素的索引是0,第二个元素的索引是1,以此类推。
  • 基本索引:

# 创建一个列表
my_list = ['apple', 'banana', 'cherry']

# 访问第一个元素
first_item = my_list[0]
print(first_item)  # 输出: apple

# 访问第二个元素
second_item = my_list[1]
print(second_item)  # 输出: banana
  • 负数索引:

  • Python也支持负数索引,这允许从列表的末尾开始计数。索引-1表示列表的最后一个元素,索引-2表示倒数第二个元素,依此类推。
# 访问最后一个元素
last_item = my_list[-1]
print(last_item)  # 输出: cherry

# 访问倒数第二个元素
second_last_item = my_list[-2]
print(second_last_item)  # 输出: banana
  • 切片:

  • 切片是访问列表中一系列元素的一种方式。可以使用切片操作符:来获取列表的一部分。
# 获取从第一个元素到第二个元素的切片(不包括索引2的元素)
slice = my_list[0:2]
print(slice)  # 输出: ['apple', 'banana']

# 获取从第二个元素到列表末尾的切片
slice = my_list[1:]
print(slice)  # 输出: ['banana', 'cherry']

# 获取从第一个元素到列表末尾的切片
slice = my_list[:2]
print(slice)  # 输出: ['apple', 'banana']
  • 遍历列表:

  • 如果想访问列表中的每个元素,可以使用for循环遍历列表。
# 遍历列表并打印每个元素
for item in my_list:
    print(item)
  • 访问列表长度:

  • 要获取列表中元素的数量,可以使用内置的len()函数。
# 获取列表长度
length = len(my_list)
print(length)  # 输出: 3

 (3)列表更新:

        在Python中,列表是可变的数据结构,这意味着你可以在列表中添加、删除或更改元素。

a.修改列表中的元素:

  • 可以通过索引直接修改列表中的特定元素:
# 创建一个列表
my_list = ['a', 'b', 'c', 'd']

# 修改第二个元素
my_list[1] = 'B'
print(my_list)  # 输出: ['a', 'B', 'c', 'd']

b.使用 append() 方法添加元素:

  • append() 方法用于在列表的末尾添加一个新元素:
# 创建一个列表
my_list = ['a', 'b', 'c']

# 使用 append() 方法添加一个新元素
my_list.append('d')
print(my_list)  # 输出: ['a', 'b', 'c', 'd']

c.使用 extend() 方法添加多个元素:

  • extend() 方法用于将一个列表中的所有元素添加到另一个列表的末尾:
# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 使用 extend() 方法将 list2 的元素添加到 list1
list1.extend(list2)
print(list1)  # 输出: [1, 2, 3, 4, 5, 6]

d.使用 insert() 方法插入元素:

  • insert() 方法允许在列表的指定位置插入一个新元素:
# 创建一个列表
my_list = ['a', 'b', 'd']

# 在索引 2 的位置插入元素 'c'
my_list.insert(2, 'c')
print(my_list)  # 输出: ['a', 'b', 'c', 'd']

e.使用 remove() 方法删除元素:

  • remove() 方法用于删除列表中的第一个匹配元素:
# 创建一个列表
my_list = ['a', 'b', 'c', 'd']

# 删除元素 'b'
my_list.remove('b')
print(my_list)  # 输出: ['a', 'c', 'd']

f.使用 pop() 方法删除并返回元素:

  • pop() 方法用于删除列表中的指定位置的元素,并返回该元素的值:
# 创建一个列表
my_list = ['a', 'b', 'c', 'd']

# 删除并返回索引 2 的元素
removed_item = my_list.pop(2)
print(removed_item)  # 输出: 'c'
print(my_list)  # 输出: ['a', 'b', 'd']

g.如果不指定索引,pop() 默认删除并返回列表的最后一个元素:

  • clear() 方法用于清空列表中的所有元素:
# 创建一个列表
my_list = ['a', 'b', 'c', 'd']

# 清空列表
my_list.clear()
print(my_list)  # 输出: []

h.使用 index() 方法查找元素索引:

  • index() 方法用于查找某个元素在列表中首次出现的索引:
# 创建一个列表
my_list = ['a', 'b', 'c', 'd']

# 查找元素 'b' 的索引
index = my_list.index('b')
print(index)  # 输出: 1

(4)列表元素删除: 

        在Python中,有多种方法可以删除列表中的元素。

a.使用 del 语句:

  • del 语句可以用来删除列表中的特定元素或切片。
my_list = ['a', 'b', 'c', 'd']

# 删除第三个元素(值 'c')
del my_list[2]
print(my_list)  # 输出: ['a', 'b', 'd']

# 删除从索引 1 开始的两个元素
del my_list[1:3]
print(my_list)  # 输出: ['a']

b.使用 pop() 方法:

  • pop() 方法用于删除列表中的一个元素,并返回该元素的值。如果不传递任何参数,它默认删除并返回列表的最后一个元素。
my_list = ['a', 'b', 'c', 'd']

# 删除并返回最后一个元素
removed_item = my_list.pop()
print(removed_item)  # 输出: 'd'
print(my_list)  # 输出: ['a', 'b', 'c']

# 指定索引来删除并返回特定元素
removed_item = my_list.pop(1)
print(removed_item)  # 输出: 'b'
print(my_list)  # 输出: ['a', 'c']

c.使用 remove() 方法:

  • remove() 方法用于删除列表中第一个匹配的元素。
my_list = ['a', 'b', 'c', 'd']

# 删除第一个匹配的元素 'b'
my_list.remove('b')
print(my_list)  # 输出: ['a', 'c', 'd']
  • 如果元素在列表中不存在,remove() 方法会抛出一个 ValueError

d.使用 clear() 方法:

  • clear() 方法用于清空整个列表,即删除列表中的所有元素。
my_list = ['a', 'b', 'c', 'd']

# 清空列表
my_list.clear()
print(my_list)  # 输出: []

注意事项:

  • 删除操作会改变列表的长度和内容,因此在遍历列表时进行删除操作可能会导致意外的行为。
  • 如果在删除元素时使用索引,需要确保索引不会越界,否则会抛出 IndexError
  • remove() 方法和 pop() 方法在元素不存在时的行为不同:remove() 会抛出错误,而 pop() 在没有指定索引时会默认删除最后一个元素。

(5)列表脚本操作符 :

        在Python中,列表(list)是一种非常灵活的数据结构,支持多种脚本操作符,这些操作符可以用来执行常见的操作,如连接、重复、成员检查等。

a. 连接操作符 +:

  • 用于将两个或多个列表连接成一个新列表。
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list)  # 输出: [1, 2, 3, 4, 5, 6]

b. 重复操作符 *:

  • 用于将列表重复多次,创建一个新列表。
list1 = [1, 2, 3]
repeated_list = list1 * 3
print(repeated_list)  # 输出: [1, 2, 3, 1, 2, 3, 1, 2, 3]

c. 成员检查操作符 in 和 not in:

  • 用于检查列表中是否存在某个元素。
list1 = [1, 2, 3]
print(1 in list1)  # 输出: True
print(4 in list1)  # 输出: False
print(4 not in list1)  # 输出: True

d. 长度操作符 len():

  • 用于获取列表的长度,即元素的数量。
list1 = [1, 2, 3]
print(len(list1))  # 输出: 3

e. 大小比较操作符:

  • 列表支持比较操作符,如 >, <, >=, <=, ==, 和 !=,用于比较列表的大小。
list1 = [1, 2, 3]
list2 = [1, 2, 3, 4]
print(list1 < list2)  # 输出: True
print(list1 == list2)  # 输出: False

f. 索引操作符 []:

  • 用于访问列表中的元素或切片。
list1 = ['a', 'b', 'c', 'd']
print(list1[0])  # 输出: 'a'
print(list1[1:3])  # 输出: ['b', 'c']

g. 列表推导式:

  • 虽然不是传统意义上的操作符,但列表推导式提供了一种优雅的方式来创建或修改列表。
list1 = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in list1]
print(squared_list)  # 输出: [1, 4, 9, 16, 25]

 (6)列表截取与拼接:

        在Python中,列表的截取与拼接是两种常用的操作,它们允许你创建新的列表或修改现有的列表。

a.列表截取(Slicing):

  • 列表截取是指从现有列表中提取一部分元素,形成一个新的列表。这可以通过切片操作来实现,切片操作使用方括号 [] 并指定起始索引和结束索引。
# 创建一个列表
my_list = ['a', 'b', 'c', 'd', 'e']

# 截取从索引1到索引3的元素(不包括索引3的元素)
sublist = my_list[1:3]
print(sublist)  # 输出: ['b', 'c']

# 截取从索引2开始到列表末尾的所有元素
sublist = my_list[2:]
print(sublist)  # 输出: ['c', 'd', 'e']

# 截取从列表开始到索引2之前的所有元素
sublist = my_list[:2]
print(sublist)  # 输出: ['a', 'b']

# 截取整个列表
sublist = my_list[:]
print(sublist)  # 输出: ['a', 'b', 'c', 'd', 'e']

# 使用负数索引截取
sublist = my_list[-3:-1]
print(sublist)  # 输出: ['c', 'd']

b.列表拼接(Concatenation):

  • 列表拼接是指将两个或多个列表连接起来,形成一个新的列表。这可以通过使用加号 + 操作符来实现。
# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 拼接列表
combined_list = list1 + list2
print(combined_list)  # 输出: [1, 2, 3, 4, 5, 6]

c.扩展列表(Extending):

  • 除了拼接两个列表并创建一个新列表外,还可以使用 extend() 方法将一个列表中的所有元素添加到另一个列表的末尾。
# 创建两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 使用 extend() 方法扩展 list1
list1.extend(list2)
print(list1)  # 输出: [1, 2, 3, 4, 5, 6]
  • 注意,extend() 方法会修改原始列表,而不是创建一个新的列表。

d.列表重复(Repetition):

  • 使用星号 * 操作符,你可以重复整个列表多次。
# 创建一个列表
my_list = ['a', 'b']

# 重复列表两次
repeated_list = my_list * 2
print(repeated_list)  # 输出: ['a', 'b', 'a', 'b']

 (7)嵌套列表:

        嵌套列表是包含其他列表的列表,它们可以用来创建多维数组或表格数据结构。嵌套列表在Python中非常灵活,可以用于表示矩阵、执行复杂的数据操作,或者仅仅是存储具有层次结构的数据。

a.创建嵌套列表:

# 创建一个嵌套列表,代表一个 2x3 的矩阵
nested_list = [[1, 2, 3], [4, 5, 6]]

# 创建一个嵌套列表,包含不同长度的子列表
nested_list_mixed = ['a', ['b', 'c'], ['d', 'e', 'f']]

b.访问嵌套列表中的元素:

# 访问嵌套列表的第一个子列表
print(nested_list[0])  # 输出: [1, 2, 3]

# 访问嵌套列表的第二个子列表的第二个元素
print(nested_list[1][1])  # 输出: 5

# 访问嵌套列表的第三个元素的第一个字符
print(nested_list_mixed[2][0])  # 输出: 'd'

c.修改嵌套列表中的元素:

# 修改嵌套列表中的元素
nested_list[0][1] = 20
print(nested_list)  # 输出: [[1, 20, 3], [4, 5, 6]]

d.遍历嵌套列表:

# 使用两层循环遍历嵌套列表
for row in nested_list:
    for element in row:
        print(element, end=' ')
    print()  # 换行

e.列表推导式与嵌套列表:

  • 列表推导式也可以用于嵌套列表,创建更复杂的结构。
# 创建一个嵌套列表,包含子列表的平方
squared_nested_list = [[x**2 for x in row] for row in nested_list]
print(squared_nested_list)  # 输出: [[1, 400, 9], [16, 25, 36]]

f.扩展嵌套列表:

# 向嵌套列表添加新的子列表
nested_list.append([7, 8, 9])
print(nested_list)  # 输出: [[1, 20, 3], [4, 5, 6], [7, 8, 9]]

d.删除嵌套列表中的元素:

# 删除嵌套列表中的特定子列表
del nested_list[0]
print(nested_list)  # 输出: [[4, 5, 6], [7, 8, 9]]

 (8)列表之间比较:

        在Python中,列表之间的比较是基于元素的顺序进行的。你可以使用标准的比较运算符(如 ==, !=, <, >, <=, >=)来比较两个列表。

a.列表比较规则:

  • 相等性比较 (== 和 !=):
    • 列表中的所有元素都相同,并且元素的顺序也相同,那么这两个列表被认为是相等的。
    • 如果任何一个元素不相同,或者元素的顺序不同,那么这两个列表是不相等的。
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = [3, 2, 1]

print(list1 == list2)  # 输出: True
print(list1 == list3)  # 输出: False
print(list1 != list3)  # 输出: True
  • 大小比较 (<><=>=):
    • 列表的比较是基于字典顺序进行的,这意味着Python会依次比较列表中的每个元素。
    • 如果在比较过程中发现某个元素不同,比较将根据这两个元素的大小关系决定整个列表的大小关系。
    • 如果所有对应元素都相等,那么较短的列表被视为较小。
list1 = [1, 2, 3]
list2 = [1, 2, 4]
list3 = [1, 2, 3, 4]

print(list1 < list2)  # 输出: True
print(list2 > list1)  # 输出: True
print(list1 <= list3)  # 输出: True
print(list3 >= list2)  # 输出: True

注意事项:

  • 列表比较是基于元素的顺序和大小,而不是基于它们在内存中的物理位置。
  • 列表比较是递归的,也就是说,如果列表中包含其他列表,那么嵌套的列表也会被比较。
  • 尝试比较不同长度的列表时,Python会从左到右依次比较每个位置的元素,直到找到不同的元素或到达较短列表的末尾。
  • 如果列表中包含不可比较的类型(如列表、字典等),则比较可能会抛出 TypeError

 (9)列表函数使用方法:

        Python列表(list)提供了多种内置方法来执行常见的操作。

  • append(x):在列表末尾添加一个元素 x

  • extend(iterable):将一个可迭代对象(如另一个列表、元组、字符串等)的所有元素添加到列表末尾。

  • insert(i, x):在指定位置 i 插入一个元素 x

  • remove(x):移除列表中第一个值为 x 的元素。

  • pop([i]):删除列表中指定位置 i 的元素,并返回该元素。如果不指定位置,默认删除并返回最后一个元素。

  • clear():清空列表中的所有元素。

  • copy():返回列表的浅拷贝。

  • sort(key=None, reverse=False):对列表进行原地排序。key 参数指定一个函数,用于在比较元素前先对元素进行转换。reverse 参数控制排序顺序。

  • sorted(iterable, key=None, reverse=False):返回一个新的列表,内容是通过对 iterable 进行排序得到的。不会更改原列表。

  • index(x[, start[, end]]):返回列表中第一个值为 x 的元素的索引。可以指定开始和结束位置进行搜索。

  • count(x):返回列表中值为 x 的元素出现的次数。

  • reverse():原地反转列表中的元素。

  • len(list):返回列表的长度。

  • max(list):返回列表中的最大值。

  • min(list):返回列表中的最小值。

  • sum(list):返回列表中所有元素的和。

 二、元组:

        在Python 3中,元组(tuple)是一种不可变的序列类型,用于存储不同类型的元素。一旦创建了元组,你就不能更改、添加或删除其中的元素。元组在Python中用于确保数据的安全性(即数据不会被改变),以及作为字典键等场景。

(1)创建元组:

  • 元组是由逗号分隔的值序列,可以使用圆括号 () 来创建,也可以省略括号。
# 使用圆括号创建元组
my_tuple = (1, 2, 3, 'a', 'b')

# 省略圆括号
my_tuple = 1, 2, 3, 'a', 'b'

# 创建单元素元组(需要在元素后加逗号)
single_element_tuple = (1,)

(2)访问元组元素:

  • 访问元组中的元素与列表类似,使用索引操作。
# 访问第一个元素
print(my_tuple[0])  # 输出: 1

# 访问最后一个元素
print(my_tuple[-1])  # 输出: 'b'

(3)元组切片:

  • 元组支持切片操作,可以用于获取元组的一部分。
# 获取元组的一部分
print(my_tuple[1:3])  # 输出: (2, 3)

(4)元组拼接:

  • 虽然不能直接修改元组,但可以通过拼接来创建一个新的元组。
# 拼接两个元组
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
print(combined_tuple)  # 输出: (1, 2, 3, 4, 5, 6)

(5)元组重复:

  • 可以使用 * 操作符来重复元组。
# 重复元组
repeated_tuple = (1, 2) * 3
print(repeated_tuple)  # 输出: (1, 2, 1, 2, 1, 2)

(7)元组内置函数:

  • len(tuple):返回元组的长度。
  • max(tuple):返回元组中的最大值。
  • min(tuple):返回元组中的最小值。
  • tuple(iterable):将可迭代对象转换为元组。

(8)元组比较:

  • 元组支持比较操作符,比较是基于元组中元素的顺序和值。
tuple1 = (1, 2, 3)
tuple2 = (1, 2, 4)
print(tuple1 < tuple2)  # 输出: True

(9)注意事项

  • 元组是不可变的,尝试修改元组的操作(如 my_tuple[0] = 2)会导致错误。
  • 元组可以作为字典的键,因为它们是不可变的。
  • 元组可以嵌套,即元组中可以包含其他元组。

 三、字典:

        在Python 3中,字典(dictionary)是一种内置的数据结构,用于存储键值对(key-value pairs)。字典是可变的,这意味着可以在创建后修改它们,比如添加、修改或删除键值对。字典在Python中用花括号 {} 定义,或者使用 dict() 函数创建。

(1)创建字典:

# 使用花括号创建字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# 使用 dict() 函数创建字典
my_dict = dict(name='John', age=30, city='New York')

(2)访问字典中的值:

  • 可以通过键来访问字典中的值。
# 访问键 'name' 对应的值
print(my_dict['name'])  # 输出: John

(3)修改字典:

  • 可以修改字典中的值,也可以添加新的键值对。
# 修改键 'age' 对应的值
my_dict['age'] = 31

# 添加新的键值对
my_dict['country'] = 'USA'

(4)删除字典中的元素:

  • 可以使用 del 语句或 pop() 方法来删除字典中的元素。
# 使用 del 语句删除键 'city'
del my_dict['city']

# 使用 pop() 方法删除键 'name' 并返回其值
name = my_dict.pop('name')

(5)遍历字典:

  • 可以遍历字典的键、值或键值对。
# 遍历字典的键
for key in my_dict:
    print(key)

# 遍历字典的值
for value in my_dict.values():
    print(value)

# 遍历字典的键值对
for key, value in my_dict.items():
    print(key, value)

(6)字典的常用方法:

  • len(dict):返回字典中键值对的数量。
  • dict[key]:返回指定键的值。
  • dict.get(key, default=None):返回指定键的值,如果键不存在,则返回默认值。
  • dict.keys():返回一个包含字典所有键的视图。
  • dict.values():返回一个包含字典所有值的视图。
  • dict.items():返回一个包含字典所有键值对的视图。
  • dict.update(other):将另一个字典的键值对更新到当前字典中。
  • dict.clear():清空字典中的所有内容。

(7)字典推导式:

  • 字典推导式是创建字典的一种简洁方式。
# 创建一个新字典,其中包含原字典键的平方
squared_dict = {key: value**2 for key, value in my_dict.items() if isinstance(value, int)}

(8)注意事项:

  • 字典的键必须是不可变类型,如字符串、数字或元组。
  • 字典的键是唯一的,不能有重复的键。
  • 字典是无序的,直到Python 3.7版,字典保持插入顺序。从Python 3.7开始,字典是有序的,并且顺序是按照插入的顺序。

 四、集合:

        在Python 3中,集合(set)是一个无序的、不包含重复元素的集合数据类型。它支持数学上的集合操作,如并集、交集、差集和对称差分。集合由花括号 {} 定义,或者使用 set() 函数创建。

(1)创建集合:

# 使用花括号创建空集合
my_set = set()

# 使用花括号创建包含元素的集合
my_set = {1, 2, 3}

# 使用 set() 函数创建集合
my_set = set([1, 2, 3])

(2)添加元素:

  • 使用 add() 方法向集合中添加元素。
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出: {1, 2, 3, 4}

(3)删除元素:

  • 使用 remove()discard() 方法从集合中删除元素。remove() 方法在元素不存在时会抛出错误,而 discard() 不会。
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set)  # 输出: {1, 3}

my_set.discard(3)
print(my_set)  # 输出: {1}

(4)清空集合:

  • 使用 clear() 方法清空集合中的所有元素。
my_set = {1, 2, 3}
my_set.clear()
print(my_set)  # 输出: set()

(5)集合运算:

  • Python的集合支持多种集合运算。
  • 并集:使用 union() 方法或 | 运算符。
  • 交集:使用 intersection() 方法或 & 运算符。
  • 差集:使用 difference() 方法或 - 运算符。
  • 对称差分:使用 symmetric_difference() 方法或 ^ 运算符。
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 并集
print(set1 | set2)  # 输出: {1, 2, 3, 4, 5}

# 交集
print(set1 & set2)  # 输出: {3}

# 差集
print(set1 - set2)  # 输出: {1, 2}

# 对称差分
print(set1 ^ set2)  # 输出: {1, 2, 4, 5}

(6)检查成员资格:

  • 使用 in 关键字检查元素是否在集合中。
my_set = {1, 2, 3}
print(2 in my_set)  # 输出: True
print(4 in my_set)  # 输出: False

(7)遍历集合:

  • 集合是可迭代的,可以使用循环遍历集合中的元素。
my_set = {1, 2, 3}
for element in my_set:
    print(element)

(8)注意事项:

  • 集合中的元素必须是可哈希的,因为集合实际上使用哈希表来存储元素。
  • 由于集合是无序的,所以不能索引或切片。
  • 集合是不可重复的,添加重复的元素不会有任何效果。

五、 条件控制:

        在Python 3中,条件控制语句允许你根据不同的条件执行不同的代码块。主要的条件控制语句包括 ifelif(else if的缩写)、elsepass

(1)if 语句:

  • if 语句用于测试一个条件,如果条件为真(True),则执行 if 块内的代码。
x = 10
if x > 5:
    print("x is greater than 5")

(2)elif 语句:

  • elif 语句用于在多个条件之间进行选择。它必须跟在 if 语句后面,可以有多个 elif 语句,直到找到第一个为真的条件。
x = 10
if x > 15:
    print("x is greater than 15")
elif x > 10:
    print("x is greater than 10")
elif x > 5:
    print("x is greater than 5")
else:
    print("x is less than or equal to 5")

(3)else 语句:

  • else 语句用于当所有 ifelif 条件都不为真时执行。它必须跟在 ifelif 语句后面。

(4)pass 语句:

  • pass 是一个空操作,当语法上需要一个语句但程序逻辑不需要执行任何操作时,可以使用 pass。
if x < 0:
    pass  # 这里不执行任何操作

(5)嵌套条件:

  • 可以在 ifelifelse 块中嵌套更多的条件语句。
x = 10
y = 5
if x > 5:
    if y > 5:
        print("Both x and y are greater than 5")
    else:
        print("x is greater than 5, but y is not")
else:
    print("x is less than or equal to 5")

(6)条件表达式(三元运算符):

Python 也支持条件表达式,它允许你在一行内执行条件判断,类似于其他语言中的三元运算符。

x = 10
result = "x is positive" if x > 0 else "x is non-positive"
print(result)

 (7)match...case语句:

        在Python 3.10及以上版本中,引入了新的结构化模式匹配语法,称为“结构化模式匹配”(Structural Pattern Matching),它允许使用 matchcase 语句来替代复杂的 if-elif-else 链。这种新的语法受到了其他语言(如Haskell的case表达式和Erlang的模式匹配)的启发。

a.基本语法:

value = ...

match value:
    case pattern1:
        # 代码块1
    case pattern2:
        # 代码块2
    case _:
        # 默认代码块
  • match:开始一个模式匹配语句。
  • case:定义一个模式,如果与 match 表达式的值匹配,则执行该代码块。
  • pattern:一个模式,可以是具体的值、变量名、类型、序列、表达式等。
  • _:表示一个捕获所有情况的通配符,类似于 else

b.示例:

def check_value(x):
    match x:
        case 1:
            print("x is 1")
        case 2:
            print("x is 2")
        case _:
            print("x is something else")

check_value(1)  # 输出: x is 1
check_value(2)  # 输出: x is 2
check_value(3)  # 输出: x is something else

c.模式匹配:

  • 模式匹配不仅仅是比较值,它还可以解构数据结构,比如元组、列表和字典:
def process_point(p):
    match p:
        case (0, 0):
            print("Origin")
        case (0, y):
            print(f"On the y-axis at {y}")
        case (x, 0):
            print(f"On the x-axis at {x}")
        case (x, y):
            print(f"At ({x}, {y})")

process_point((3, 4))  # 输出: At (3, 4)
process_point((0, 5))  # 输出: On the y-axis at 5
process_point((5, 0))  # 输出: On the x-axis at 5
process_point((0, 0))  # 输出: Origin

d.类型匹配:

还可以根据类型进行匹配:

def process_value(v):
    match v:
        case str():
            print("Value is a string")
        case int():
            print("Value is an integer")
        case float():
            print("Value is a float")
        case _:
            print("Value is of an unknown type")

process_value("Hello")  # 输出: Value is a string
process_value(42)      # 输出: Value is an integer
process_value(3.14)    # 输出: Value is a float
process_value([1, 2, 3])  # 输出: Value is of an unknown type

 六、循环语句:

        Python 3中的循环语句用于重复执行一段代码,直到满足特定条件。主要有两种类型的循环语句:for 循环和 while 循环。

(1)for 循环:

  • for 循环用于遍历序列(如列表、元组、字典、集合等)或其他可迭代对象。
# 遍历列表
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)

# 遍历字符串(字符串也是可迭代的)
for char in "hello":
    print(char)

# 遍历字典(默认遍历字典的键)
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
    print(key, my_dict[key])

# 使用 range() 函数进行数值循环
for i in range(5):
    print(i)

# 使用 range() 函数的起始和结束值
for i in range(2, 10, 2):
    print(i)  # 打印 2, 4, 6, 8

(2)while 循环:

  • while 循环会一直执行,直到条件变为假(False)。
# 基本的 while 循环
count = 0
while count < 5:
    print(count)
    count += 1  # 等同于 count = count + 1

# 带有条件表达式的 while 循环
number = 1
while number <= 5:
    print(number)
    number += 1

(3)循环控制语句:

  • break:用于立即退出循环体,无论 for 还是 while 循环。
  • continue:跳过当前循环的剩余部分,直接进行下一次迭代。
  • else:可以与 for 循环一起使用,当循环正常结束时执行 else 块(即没有遇到 break 语句)。
# 使用 break 退出循环
for num in range(1, 10):
    if num == 5:
        break
    print(num)
print("循环结束")

# 使用 continue 跳过迭代
for num in range(1, 10):
    if num % 2 == 0:
        continue
    print(num)

# 使用 for-else 循环
for i in range(1, 5):
    if i % 2 == 0:
        print("Found an even number", i)
        break
else:
    print("No even number found")

 (4)pass 语句:

        在Python中,pass 是一个空操作语句,它什么也不做。pass 语句通常用作占位符,当语法上需要一条语句但程序逻辑不需要执行任何操作时,就会使用 pass

a.作为占位符:

  • 在定义类、方法或循环时,如果暂时不想执行任何操作,可以使用 pass
class MyEmptyClass:
    pass

def my_empty_function():
    pass

while True:
    pass

b.满足语法要求:

  • 在某些情况下,Python语法要求必须写一条语句,但可能还没有准备好实现具体的功能。
if __name__ == "__main__":
    pass

c.在条件语句中:

  • if-elif-else 语句中,如果只需要在某些条件分支中执行代码,可以在其他分支使用 pass
x = 10
if x > 5:
    print("x is greater than 5")
elif x < 5:
    pass  # 这里暂时不执行任何操作
else:
    print("x is equal to 5")

d.在循环中:

  • 在循环中,如果你只是想循环执行某些操作,而不在每次迭代中做任何事情,可以使用 pass
for i in range(5):
    pass  # 这里不执行任何操作

e.在异常处理中:

  • 在定义异常处理程序时,如果只是想捕获异常而不做任何处理,可以使用 pass
try:
    # 尝试执行一些可能引发异常的代码
except ValueError:
    pass  # 捕获异常,但不执行任何操作

标签:元素,list,列表,print,元组,my,Python3,字典
From: https://blog.csdn.net/The_xz/article/details/142001189

相关文章

  • PART1-Oracle关系数据结构-数据字典与动态性能视图
    6.数据字典与动态性能视图6.1.数据字典概述Oracle数据库的一个重要组成部分是其数据字典,这是一个只读的表集合,提供了有关数据库的管理元数据。数据字典包含如下信息:数据库中每个模式对象的定义,包括列的默认值和完整性约束信息分配给模式对象的空间量以及当前使用的量Oracl......
  • 使用itertools 中的groupby 对字典数组进行分组后排序
    有个需求需要对数据进行分组然后对分组后的组内数据继续排序fromitertoolsimportgroupby#示例数据data=[{'a':"攻击队1",'b':'张三','c':3},{'a':"攻击队1",'b':'张三1','c':1},......
  • AT_arc151 题解 & 数组字典序大小比较求方案数
    很好的一题,做的时候没有一点思路,看了题解。看来做过的题目还是太少了,记录一下经验。注意到$1\leN\le2\times10^5$和$1\leM\le10^9$,如此庞大的数据,dp是肯定不行的。当字典序$A<B$时,当且仅当存在$i$,使得$\forallx\in[1,i)$,$A_x=B_x$且$A_i<B_i$。那么我们对于$......
  • centos下python3.6.8 安装ssl模块
    1.查看openssl是否已安装输入命令行:opensslversion 2.下载python安装包.这个在官网去下载就可以了.然后导入到centos系统当中,并进行解压tar-zxvfxxx.tgz3.安装python,相关前置条件查看百度即可.什么gcc之类的常用命令:./configure--prefix="/usr/local/python"m......
  • 【字典序第k小】
    440.字典序的第K小数字在0~9的字典树(十叉树)上,首先计算以cur为前缀的小于等于n的节点个数有多少,即通过以cur为根找子树中小于等于n的节点个数如果子树个数小于k,那么就在同一层向右平移1,否则就跳到cur的一下层第一个子节点点击查看代码classSolution{publicint......
  • 字典元素的访问示例
    '''可以对字典对象进行迭代或者遍历,默认是遍历字典的键,如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的值则必须使用字典对象的values()方法明确说明'''Dict={'age':18,'name':'Zheng','sex':'male'}#遍历输出字典的键foriteminDict:  ......
  • 字典get()方法使用案例
    '''字典对象提供了一个get()方法用来返回指定键对应的值,并且允许指定键不存在时返回特定的值'''Dict={'age':18,'sorce':'Zheng','sex':'male'}#输出键对应的值print(Dict['age'])print(Dict['sorce'])print(D......
  • 中国电子学会Python3级等级考试202403编程题解析1
    1编程题目整数问题给定一个十进制整数n,求出从1到n的所有整数中出现“1”的个数。例如,n=2时,1,2出现1个“1”。n=12时,1,2,3,4,5,6,7,8,9,10,11,12,出现5个“1”。现编写一个程序,实现如下功能:输入整数n,执行程序后,输出该范围内出现“1”的个数。请完善程序。图1要完善的程序......
  • 字典操作示例
    字典用{}标识,它是一个无序的“键(key):值(value)”对集合。在同一个字典中,键必须是唯一的,但值不必唯一,值可以是任何数据类型,但键必须是不可变的,如字符串,数字,元组首先需要先定义一个字典dict1={'Alice':'123','Beth':'456','Cecil':'abc'}输出123print(dict1['Alice'])增......
  • SCKG:Reliable Semantic Communication System Enabled by Knowledge Graph——智能化
    1.语义通信的背景和重要性1.1.传统通信vs.语义通信        传统的通信技术关注的是比特和符号的准确传输,即如何在不丢失信息的前提下将数据从发送端传输到接收端。然而,随着数据量的爆炸性增长和对通信带宽的需求增加,传统通信方式逐渐接近香农容量的上限,难以满足......