表示整数值,例如:42, -10。
表示带有小数部分的数值,例如:3.14, -0.5。
表示字符或文本序列,用引号(单引号或双引号)括起来,例如:“Hello, World!”。
表示真(True)或假(False)的值。
又称一维数组。表示有序、可变的集合,可以包含不同类型的元素。
一维数组
numbers = [1, 2, 3, 4, 5]
?二维数组,赋值0
matrix = [[0 for col in range(cols)] for row in range(rows)]
二维数组,空
matrix = [[] for row in range(rows)]
?一维数组
first_number = numbers[0] # 访问第一个元素
last_number = numbers[-1] # 访问最后一个元素
?二维数组
for row in range(rows):
for col in range(cols):
print(matrix[row][col])
一维数组
numbers[1] = 10 # 将索引为1的元素更新为10
二维数组
matrix[row][col] = value
numbers.append(6) # 在数组末尾添加一个元素
numbers.insert(2, 7) # 在索引为2的位置插入元素7
del numbers[3] # 删除索引为3的元素
numbers.remove(4) # 删除值为4的第一个元素
length = len(numbers) # 获取数组的长度
一维数组?
sliced_numbers = numbers[1:4] # 获取索引1到3的元素切片
二维数组,取原矩阵的[2:5][2:5]
new_matrix = [row[2:5] for row in maxtrix[2:5]]
str1 = "Hello, World!"
count = str1.count("l")
print(count) # 输出结果:3
index()是在序列中检索参数并返回第一次出现的索引位置,Python下标默认从0计数。
A = [123, 'xyz', 'zara', 'abc']
print(A.index('xyz')) # 输出1
表示有序、不可变的集合,可以包含不同类型的元素。
表示无序、键值对的集合,用大括号括起来。
使用字典的键来获取对应的值,可以使用方括号或get()方法。
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}
print(my_dict['name']) # 输出:Alice
print(my_dict.get('age')) # 输出:25
使用字典的键来添加或修改对应的值,可以使用方括号或update()方法。?
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}
my_dict['email'] = 'alice@example.com'
my_dict.update({'age': 26, 'gender': 'unknown'})
print(my_dict) # 输出:{'name': 'Alice', 'age': 26, 'gender': 'unknown', 'email': 'alice@example.com'}
使用del语句或pop()方法来删除字典中的键值对。
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}
del my_dict['age']
my_dict.pop('gender')
print(my_dict) # 输出:{'name': 'Alice'}
使用keys()方法获取所有键,使用values()方法获取所有值。
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}
print(my_dict.keys()) # 输出:dict_keys(['name', 'age', 'gender'])
print(my_dict.values()) # 输出:dict_values(['Alice', 25, 'female'])
使用in判断键是否存在于字典中。?
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}
print('name' in my_dict) # 输出:True
表示无序、唯一的元素集合,用大括号括起来。
返回两个集合中都存在的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
intersection = set1.intersection(set2)
print(intersection) # {4, 5}
intersection = set1 & set2
print(intersection) # {4, 5}
返回两个集合中所有的元素,去重后组成的新集合。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union = set1.union(set2)
print(union) # {1, 2, 3, 4, 5, 6, 7, 8}
union = set1 | set2
print(union) # {1, 2, 3, 4, 5, 6, 7, 8}
返回属于第一个集合但不属于第二个集合的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
difference = set1.difference(set2)
print(difference) # {1, 2, 3}
difference = set1 - set2
print(difference) # {1, 2, 3}
返回只属于一个集合而不属于另一个集合的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
symmetric_difference = set1.symmetric_difference(set2)
print(symmetric_difference) # {1, 2, 3, 6, 7, 8}
symmetric_difference = set1 ^ set2
print(symmetric_difference) # {1, 2, 3, 6, 7, 8}
Python的typing库提供了类型提示的功能,可以在代码中指定参数和返回值的类型。
def add_numbers(a: int, b: int) -> int:
return a + b
def divide_numbers(a: float, b: float) -> float:
return a / b
def greet(name: str) -> str:
return "Hello, " + name + "!"
def is_positive(number: int) -> bool:
return number > 0
from typing import TypeVar
T = TypeVar('T')
def get_first_element(arr: list[T]) -> T:
return arr[0]
?在 Python 中,可以使用 copy 模块中的 deepcopy() 函数来实现二维数组的任意拷贝。deepcopy() 函数可以递归地复制对象中的所有元素,包括嵌套的对象。
import copy
# 原始二维数组
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 使用 deepcopy() 函数进行拷贝
arr_copy = copy.deepcopy(arr)
# 修改拷贝后的数组
arr_copy[0][0] = 0
# 打印原始数组和拷贝后的数组
print("原始数组:", arr)
print("拷贝后的数组:", arr_copy)
list.sort() # 列表排序
list.reverse() # 列表逆序
sorted(tuple) # 元组排序
reversed(tuple) # 元组逆序
?按长度排序
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=len)
print(sorted_words) # ['apple', 'cherry', 'banana']
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
# 实现 less than方法,来实现排序
return self.age < other.age
people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20)]
sorted_people = sorted(people)
print([p.name for p in sorted_people]) # ['Charlie', 'Alice', 'Bob']