列表(List)
定义和特点 :
列表是一种有序的可变序列,可包含不同类型的元素,如整数、字符串、列表等。可以通过索引访问和修改元素,索引从 0 开始。 代码示例 :
my_list = [1, 2, 'apple', [4, 5]]
print(my_list[0]) # 输出列表中的第一个元素,即1
my_list[2] = 'banana' # 修改列表中的第三个元素
print(my_list)
创建列表
直接创建 :使用方括号[]
将元素括起来,元素之间用逗号分隔。例如:my_list = [1, 2, 3]
,可以包含不同类型的元素,如my_list_with_different_types = [1, "apple", True]
。使用list()
函数创建 :可以将其他可迭代对象(如元组、集合、字符串)转换为列表。例如,将元组转换为列表:my_tuple = (1, 2, 3)
,my_list_from_tuple = list(my_tuple)
,此时my_list_from_tuple
的值为[1, 2, 3]
;将字符串转换为列表:my_string = "abc"
,my_list_from_string = list(my_string)
,得到['a', 'b', 'c']
。访问元素
通过索引访问 :列表中的元素索引从 0 开始,使用方括号[]
加上索引值来访问元素。例如:my_list = [1, 2, 3]
,print(my_list[0])
会输出1
,print(my_list[2])
会输出3
。可以使用负数索引从列表末尾开始访问,如my_list[-1]
表示最后一个元素,my_list[-2]
表示倒数第二个元素。修改元素
通过索引修改 :使用方括号[]
和索引来修改指定位置的元素。例如:my_list = [1, 2, 3]
,my_list[1] = 4
,此时my_list
变为[1, 4, 3]
。添加元素
append
方法 :用于在列表末尾添加一个元素。例如:my_list = [1, 2, 3]
,my_list.append(4)
,则my_list
变为[1, 2, 3, 4]
。insert
方法 :用于在指定位置插入一个元素。它接受两个参数,第一个参数是插入位置的索引,第二个参数是要插入的元素。例如:my_list = [1, 2, 3]
,my_list.insert(1, "apple")
,此时my_list
变为[1, "apple", 2, 3]
。删除元素
remove
方法 :用于删除列表中指定的元素。如果元素不存在,会抛出ValueError
异常。例如:my_list = [1, 2, 3]
,my_list.remove(2)
,此时my_list
变为[1, 3]
。pop
方法 :用于删除并返回指定索引位置的元素。如果不指定索引,默认删除并返回最后一个元素。例如:my_list = [1, 2, 3]
,popped_element = my_list.pop(1)
,此时my_list
变为[1, 3]
,popped_element
的值为2
。del
关键字 :可以用于删除列表中的元素或整个列表。例如:my_list = [1, 2, 3]
,del my_list[0]
,此时my_list
变为[2, 3]
;如果使用del my_list
,则会删除整个列表。列表切片
基本语法 :使用[start:stop:step]
的形式来获取列表的一个子序列。start
表示起始索引(包含),stop
表示结束索引(不包含),step
表示步长。例如:my_list = [1, 2, 3, 4, 5]
,print(my_list[1:4])
会输出[2, 3, 4]
,print(my_list[::2])
会输出[1, 3, 5]
。列表排序
sort
方法 :用于对列表中的元素进行排序。默认是升序排序,可以通过sort(reverse = True)
进行降序排序。例如:my_list = [3, 1, 2]
,my_list.sort()
,此时my_list
变为[1, 2, 3]
;如果使用my_list.sort(reverse = True)
,则my_list
变为[3, 2, 1]
。sorted
函数 :与sort
方法类似,但sorted
函数会返回一个新的已排序的列表,而原列表不变。例如:my_list = [3, 1, 2]
,new_sorted_list = sorted(my_list)
,此时my_list
仍为[3, 1, 2]
,而new_sorted_list
为[1, 2, 3]
。列表的拼接和重复
拼接 :可以使用+
运算符将两个列表拼接在一起。例如:list1 = [1, 2]
,list2 = [3, 4]
,combined_list = list1 + list2
,此时combined_list
的值为[1, 2, 3, 4]
。重复 :可以使用*
运算符将列表重复指定的次数。例如:my_list = [1, 2]
,repeated_list = my_list * 3
,此时repeated_list
的值为[1, 2, 1, 2, 1, 2]
。查找元素位置
index
方法 :用于查找元素在列表中的第一个位置索引。如果元素不存在,会抛出ValueError
异常。例如:my_list = [1, 2, 3, 2]
,print(my_list.index(2))
会输出1
。统计元素个数
count
方法 :用于统计元素在列表中出现的次数。例如:my_list = [1, 2, 3, 2]
,print(my_list.count(2))
会输出2
。
元组(Tuple)
定义和特点 :
元组是有序的不可变序列,一旦创建,元素不能修改。它也可以包含多种类型的元素,常用于存储相关联的数据。 代码示例 :
my_tuple = (1, 2, 'apple')
print(my_tuple[1]) # 输出元组中的第二个元素,即2
# 以下代码会出错,因为元组是不可变的
# my_tuple[2] = 'banana'
集合(Set)
定义和特点 :
集合是无序的可变数据结构,元素具有唯一性,即不会包含重复的元素。主要用于去重、数学集合运算(如交集、并集、差集)等。 代码示例 :
my_set = {1, 2, 3, 3} # 自动去除重复元素,实际为{1, 2, 3}
my_set.add(4) # 添加元素4
print(my_set)
another_set = {3, 4, 5}
intersection_set = my_set & another_set # 求交集
print(intersection_set)
创建集合
直接创建 :使用花括号{}
将元素括起来,元素之间用逗号分隔。例如:my_set = {1, 2, 3}
。需要注意的是,如果要创建一个空集合,不能使用{}
,因为{}
在 Python 中默认用于创建字典,空集合应该使用set()
函数来创建,如empty_set = set()
。从可迭代对象创建 :可以使用set()
函数将其他可迭代对象(如列表、元组)转换为集合,从而去除重复元素。例如:my_list = [1, 2, 2, 3]
,my_set_from_list = set(my_list)
,此时my_set_from_list
的值为{1, 2, 3}
。添加元素
add
方法 :用于向集合中添加一个元素。如果添加的元素已经存在于集合中,集合不会发生变化。例如:my_set = {1, 2, 3}
,my_set.add(4)
,此时my_set
变为{1, 2, 3, 4}
。删除元素
remove
方法 :用于删除集合中指定的元素。如果元素不存在,会抛出KeyError
异常。例如:my_set = {1, 2, 3}
,my_set.remove(2)
,此时my_set
变为{1, 3}
。discard
方法 :与remove
类似,用于删除集合中的元素,但如果元素不存在,不会抛出异常。例如:my_set = {1, 2, 3}
,my_set.discard(4)
,my_set
的值不变,仍为{1, 2, 3}
。pop
方法 :随机删除并返回集合中的一个元素。由于集合是无序的,所以无法确定删除的是哪个元素。例如:my_set = {1, 2, 3}
,popped_element = my_set.pop()
,popped_element
的值是集合中的一个元素(可能是1
、2
或3
),同时my_set
会少一个元素。集合运算
交集(&
或intersection
方法) :返回两个集合中共同的元素。例如:set1 = {1, 2, 3}
,set2 = {2, 3, 4}
,intersection_set = set1 & set2
(或intersection_set = set1.intersection(set2)
),intersection_set
的值为{2, 3}
。并集(|
或union
方法) :返回包含两个集合中所有元素的集合。例如:set1 = {1, 2, 3}
,set2 = {2, 3, 4}
,union_set = set1 | set2
(或union_set = set1.union(set2)
),union_set
的值为{1, 2, 3, 4}
。差集(-
或difference
方法) :返回一个集合中存在而另一个集合中不存在的元素。例如:set1 = {1, 2, 3}
,set2 = {2, 3, 4}
,difference_set = set1 - set2
(或difference_set = set1.difference(set2)
),difference_set
的值为{1}
。对称差集(^
或symmetric_difference
方法) :返回两个集合中不重复的所有元素,即只存在于一个集合中的元素。例如:set1 = {1, 2, 3}
,set2 = {2, 3, 4}
,symmetric_difference_set = set1 ^ set2
(或symmetric_difference_set = set1.symmetric_difference(set2)
),symmetric_difference_set
的值为{1, 4}
。判断元素是否在集合中
使用in
关键字。例如:my_set = {1, 2, 3}
,print(1 in my_set)
会输出True
,print(4 in my_set)
会输出False
。 集合的比较
issubset
方法(<=
) :用于判断一个集合是否是另一个集合的子集。例如:set1 = {1, 2}
,set2 = {1, 2, 3}
,print(set1.issubset(set2))
(或print(set1 <= set2)
)会输出True
。issuperset
方法(>=
) :用于判断一个集合是否是另一个集合的超集。例如:set1 = {1, 2, 3}
,set2 = {1, 2}
,print(set1.issuperset(set2))
(或print(set1 >= set2)
)会输出True
。isdisjoint
方法 :用于判断两个集合是否没有共同元素。例如:set1 = {1, 2}
,set2 = {3, 4}
,print(set1.isdisjoint(set2))
会输出True
。
字典(Dictionary)
定义和特点 :
字典是无序的可变数据结构,由键 - 值(key - value)对组成。键必须是唯一的,值可以是任何类型。通过键来访问和修改值。 代码示例 :
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict['name']) # 输出键为'name'的值,即'John'
my_dict['age'] = 31 # 修改键'age'的值
print(my_dict)
字符串(String)
定义和特点 :
字符串是有序的不可变序列,用于表示文本。可以通过索引访问字符,也可以进行切片操作。 代码示例 :
my_string = "Hello, World!"
print(my_string[0]) # 输出字符串中的第一个字符,即'H'
print(my_string[7:]) # 切片操作,输出从索引7开始的字符,即'World!'
# 以下代码会出错,因为字符串是不可变的
# my_string[5] = '.'