Python语法基础-列表(List)及其常用方法

序列类型

序列类型用于存储一组有序的元素。

Python 支持多种序列类型,最常见的是列表、元组和范围。

列表(List)

列表是一个可变的、有序的元素集合。

  • 示例[1, 2, 3], ["apple", "banana", "cherry"], [1, "text", 3.14]
  • 描述
    • 列表中的元素可以是不同类型。
    • 列表是可变的,支持添加、删除和修改元素。
  • 示例代码
    1
    2
    my_list = [1, 2, 3]
    print(type(my_list)) # 输出: <class 'list'>

元组(Tuple)

元组是一个不可变的、有序的元素集合。

  • 示例(1, 2, 3), ("apple", "banana"), (1, "text", 3.14)
  • 描述
    • 元组中的元素可以是不同类型。
    • 元组是不可变的,创建后不能修改。
  • 示例代码
    1
    2
    my_tuple = (1, 2, 3)
    print(type(my_tuple)) # 输出: <class 'tuple'>

范围(Range)

范围是表示一个连续整数序列的不可变类型。

  • 示例range(10), range(2, 10, 2)
  • 描述
    • range(start, stop, step) 表示从 startstop(不包括 stop)的整数序列,步长为 step
  • 示例代码
    1
    2
    my_range = range(5)
    print(type(my_range)) # 输出: <class 'range'>

集合类型

集合类型用于存储一组无序且唯一的元素。

集合(Set)

集合是一个无序的、不重复的元素集合。

  • 示例{1, 2, 3}, {"apple", "banana", "cherry"}
  • 描述
    • 集合中的元素是唯一的,不能重复。
    • 集合是可变的,支持添加和删除元素。
  • 示例代码
    1
    2
    my_set = {1, 2, 3}
    print(type(my_set)) # 输出: <class 'set'>

冻结集合(Frozenset)

冻结集合是一个不可变的集合类型。

  • 示例frozenset({1, 2, 3})
  • 描述
    • 冻结集合中的元素是唯一的,不能重复。
    • 冻结集合是不可变的,创建后不能修改。
  • 示例代码
    1
    2
    my_frozenset = frozenset({1, 2, 3})
    print(type(my_frozenset)) # 输出: <class 'frozenset'>

类型转换

Python 支持多种类型的转换,如:

  • int(): 将其他类型转换为整数。
  • float(): 将其他类型转换为浮点数。
  • str(): 将其他类型转换为字符串。
  • list(): 将其他类型转换为列表。
  • tuple(): 将其他类型转换为元组。
  • set(): 将其他类型转换为集合。
  • dict(): 将其他类型转换为字典。

示例

1
2
3
num = 5
float_num = float(num) # 转换为浮点数
str_num = str(num) # 转换为字符串

数组

Python中集合类型是没有数组的。

Python 内置的 array 模块提供了一种更高效的数组实现,可以指定元素类型。

但是,它的长度也是动态的,和 list 类似。

1
2
3
4
import array

# 创建一个整型数组
arr = array.array('i', [0] * 10) # 初始化一个长度为 10 的整型数组

列表

列表对象方法

方法 描述
append() 在列表的末尾添加一个元素
clear() 删除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量。
extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 删除指定位置的元素
remove() 删除具有指定值的项目
reverse() 颠倒列表的顺序
sort() 对列表进行排序

可操作列表方法

获取列表的长度

1
len(region)

列表的最大最小值

1
2
3
4
min_rate = min(rate_arr)
max_rate = max(rate_arr)

num_index = rate_arr.index(max_rate)

转换并取值

把列表中的数组转为int并取值

1
x1, y1, width, height = map(int, region)

列表排序

1
sort_list = sorted(lineList, key=lambda x: x[0])

列表中的高频字符串

你可以使用 Python 中的 collections.Counter 来获取字符串列表中出现最多的字符串及其比例。

以下是一个示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from collections import Counter

def get_most_common_string_and_ratio(string_array):
if not string_array:
return None, 0 # 如果数组为空,返回 None 和 0

# 统计每个字符串的出现次数
counter = Counter(string_array)

# 获取出现次数最多的字符串及其次数
most_common_string, most_common_count = counter.most_common(1)[0]

# 计算总字符串数量
total_count = len(string_array)

# 计算比例
ratio = most_common_count / total_count

return most_common_string, ratio

# 示例
strings = ["apple", "banana", "apple", "orange", "banana", "apple"]
most_common_string, ratio = get_most_common_string_and_ratio(strings)

print(f"出现最多的字符串: {most_common_string}, 比例: {ratio:.2f}")

说明

  1. CounterCounter 类会生成一个字典,键为字符串,值为对应的出现次数。
  2. most_commonmost_common(1) 返回出现次数最多的字符串及其次数。
  3. 比例计算:通过将出现次数除以总字符串数来计算比例。

集合Set

方法 描述
add() 向集合添加元素。
clear() 删除集合中的所有元素。
copy() 返回集合的副本。
difference() 返回包含两个或更多集合之间差异的集合。
difference_update() 删除此集合中也包含在另一个指定集合中的项目。
discard() 删除指定项目。
intersection() 返回为两个其他集合的交集的集合。
intersection_update() 删除此集合中不存在于其他指定集合中的项目。
isdisjoint() 返回两个集合是否有交集。
issubset() 返回另一个集合是否包含此集合。
issuperset() 返回此集合是否包含另一个集合。
pop() 从集合中删除一个元素。
remove() 删除指定元素。
symmetric_difference() 返回具有两组集合的对称差集的集合。
symmetric_difference_update() 插入此集合和另一个集合的对称差集。
union() 返回包含集合并集的集合。
update() 用此集合和其他集合的并集来更新集合。

元组

方法 描述
count() 返回元组中指定值出现的次数。
index() 在元组中搜索指定的值并返回它被找到的位置。