Python 列表

1. 列表(list)

  • 列表由一系列按特定顺序排列的元素组成(有序),列表中的元素可以是不同类型的对象
  • 列表用方括号 [] 表示,元素之间用逗号 , 分隔

1.1 访问列表元素

motorcycles = ['honda', 'yamaha', 'suzuki']
print(f'len(motorcycles): {len(motorcycles)}')
# 索引从 0 开始
print(f'motorcycles[0]: {motorcycles[0]}')

负数索引
-1 表示列表最后一个元素,依此类推

print(motorcycles[-1])
print(motorcycles[-2])

1.2 列表操作

# 初始化
motorcycles = []

# 添加元素
motorcycles.append('yamaha')
motorcycles.append('suzuki')
# 插入元素
motorcycles.insert(0, 'honda')

# 删除元素
del motorcycles[0]

# 根据值删除元素
motorcycles.remove('yamaha')
motorcycles = ['honda', 'yamaha', 'suzuki']

# pop() 弹出列表末尾的元素
pop_cycles = motorcycles.pop()

# 弹出指定位置的元素
first_cycle = motorcycles.pop(0)

1.3 排序

# 方法sort() 是永久性地修改列表元素的排列顺序(列表是不可恢复的改变)
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(f'Sorted cars: {cars}')

# 临时排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
sort_cars = sorted(cars)
print(f"Sorted cars:{sort_cars} \n原cars:{cars}")

# 倒序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(f'cars.sort(reverse=True): {cars}')

列表反转(非排序)

# reverse()也是永久性地修改
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(f"Reversed cars: {cars}")

1.4 切片(slicing)

生成列表的任意子集,指定元素的索引
语法:[start:end]

# 转为list
numbers = list(range(6))
# [0, 1, 2, 3, 4, 5]
print(f'min(numbers): {min(numbers)}, max(numbers): {max(numbers)}, sum(numbers): {sum(numbers)}')
numbers = list(range(6))
print(f'numbers[1:4]: {numbers[1:4]}')  # [1, 2, 3]
print(f'numbers[:4]: {numbers[:4]}')  # 默认从头开始
print(f'numbers[-3:]: {numbers[-3:]}')  # 最后三名

复制列表
方法是同时省略起始索引和终止索引[:]

numbers = list(range(6))
copy_nums = numbers[:]
print(copy_nums)

1.5 列表判空

my_list = []
# 空列表被视为 False, 非空列表被视为 True
if my_list:
    print(my_list[0])
else:
    print('No list')

# isinstance() 检查变量是否为列表类型
if isinstance(my_list, list) and not my_list:
    print("这是一个空列表")

2. 元组(tuple)

  • 元组是一种不可变有序集合类型
  • 元组用圆括号()表示,元素之间用逗号 , 分隔
  • 列表可以修改,元组是不可修改的列表

2.1 创建元组

# 创建空元组
empty_tuple = ()
# 创建元组
my_tuple = (1, 'apple', 3.14)

# 单个元素的元组需要加逗号,否则会被解释为括号表达式
single_element_tuple = ('banana',)

2.2 元组操作

# 可通过索引访问元素
print(my_tuple[1])

不能修改元组的元素,但可以给存储元组的变量赋值

my_tuple[0] = 10
# TypeError: 'tuple' object does not support item assignment
# 可以重新赋值
my_tuple = (10, 'apple')

3. 集合(set)

  • 集合是一个无序不重复元素序列
  • 集合用方括号 {} 表示,元素之间用逗号 , 分隔

3.1 创建集合

方式一:set_name = {element1, element2, ..., elementn}
方式二:set_name = set(iteration)

set1 = {1, 2, 3}
set2 = set([4, 5, 6])
# 创建空集合
empty_set = set()

# 添加元素
empty_set.add(1)

注意:创建空集合要用 set() 而不是 {}, 因为 {} 会创建一个空的字典(dict)

3.2 集合操作

fruits = {'apple', 'banana', 'cherry'}

fruits.add('orange')

fruits.remove('banana')

# If the element is not a member, raise a KeyError.
# fruits.remove('nothing')

# 尝试移除不存在的元素,不会抛异常
fruits.discard('nothing')

3.3 数学的集合操作

a = set([1, 2, 3, 4])
b = set([3, 4, 5, 6])

# 并集(union)
print(a.union(b))  # 输出 {1, 2, 3, 4, 5, 6}

# 交集(intersection)
print(a.intersection(b))  # 输出 {3, 4}

# 差集(difference)
print(a.difference(b))  # 输出 {1, 2}

# 对称差集(symmetric difference)
print(a.symmetric_difference(b))  # 输出 {1, 2, 5, 6}

3.4 不可变集合(frozenset)

empty_set = frozenset()

set1 = frozenset({1, 2, 3})
print(set1) # frozenset({1, 2, 3})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容