Python 列表(list)
1. 列表的定义和初始化
列表是一种复合数据类型,可以包含不同类型的元素。
x = [10, 20, 3.14, 10+2j, True, False, "hqyj"]
print(x)
2. 访问列表中的值
2.1 索引
列表的索引从0开始,可以正向或反向访问。
y1 = x[0] # 访问第一个元素
y2 = x[-1] # 访问最后一个元素
2.2 切片索引
切片操作可以获取列表的一个子集。
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4]) # 输出前四个元素
3. 更新列表
companies = ['openAI', 'hqyj', 1997, 2000]
companies[2] = 2001 # 更新列表中的元素
companies.append('Baidu') # 在列表末尾添加新元素
4. 删除列表元素
companies = ['openAI', 'hqyj', 1997, 2004]
del companies[2] # 删除第三个元素
5. 列表操作符
print(len([1, 2, 3])) # 列表长度
print([1, 2, 3] + [4, 5, 6]) # 列表组合
print(['Hi!'] * 4) # 列表重复
print(3 in [1, 2, 3]) # 元素是否存在
for el in [1, 2, 3]: print(el) # 迭代列表
6. 嵌套列表
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
nested_list = [letters, numbers]
print(nested_list[0][1]) # 访问嵌套列表中的元素
7. Python列表常用API
print(len([1, 2, 3])) # 列表长度
print(max([1, 2, 3])) # 最大值
print(min([1, 2, 3])) # 最小值
print(list((1, 2, 3))) # 元组转列表
8. 列表方法
companies = ['openAI', 'hqyj', 'Taobao']
companies.append('Baidu') # 添加元素
print(companies.count('openAI')) # 计数
companies.extend(['Wiki', 'Zhihu']) # 扩展列表
print(companies.index('Baidu')) # 查找索引
companies.insert(1, 'Google') # 插入元素
companies.pop() # 移除元素
companies.remove('Taobao') # 移除指定元素
companies.reverse() # 反转列表
companies.sort() # 排序列表
companies.clear() # 清空列表
companies.copy() # 复制列表
9. 列表的深拷贝和浅拷贝
x = [10, 20, 30]
x2 = x # 浅拷贝,x2和x指向同一内存地址
x2[0] = 100 # 修改x2的同时也会修改x
x3 = x[:] # 深拷贝,x3是x的副本
x3[0] = 200 # 修改x3不会影响x
10. 列表切片的浅拷贝
x = [10, 20, 30, 40]
x2 = x[:2] # x2是x的浅拷贝切片
x2[0] = 999 # 修改x2不会影响x
11. 列表的迭代和循环
for i in range(len(x)):
print(i, x[i]) # 使用索引迭代列表
for el in x:
print(el) # 直接迭代列表元素
习题补充
import random
x=[]
for i in range(100):
row = []
for j in range(80):
row.append(int(random.random()*100))
x.append(row)
print(x)
#要求把列表一分为二 的一部分为x_train包含前79 y_train包含最后一列
print("-------")
print(len(x))
print(len(x[0]))
# x_train=x[:-1]
# y_train=x[-1]
x_train = [row[:-1] for row in x] # 包含每个子列表的前79个元素
y_train = [row[-1] for row in x] # 包含每个子列表的最后一个元素
# 打印结果
print("x_train (前79列):")
for row in x_train:
print(row)
print("\ny_train (最后一列):")
print(y_train)
Python元组(tuple)
1. 创建元组
元组是一种不可变的序列数据类型,用于存储 collections of items。元组在 Python 中通过圆括号 ()
表示。
1.1 存放相同类型的数据
x = (10, 20, 30)
print(x) # 输出:(10, 20, 30)
1.2 存放不同类型的数据
x = ("hello", "hqyj", 24)
print(x) # 输出:('hello', 'hqyj', 24)
1.3 不需要括号也可以
在赋值时,不需要圆括号也可以创建元组。
x = 10, 20, 30, 40, 50
print(x) # 输出:(10, 20, 30, 40, 50)
1.4 只包含一个元素
x = (10,) # 单个元素的元组需要在元素后加逗号
print(x) # 输出:(10,)
2. 访问元组
元组元素的访问与列表类似,可以通过索引进行。
2.1 索引访问
x = (10, 20, 30)
print(x[0]) # 输出:10
print(x[2]) # 输出:30
2.2 反向索引
print(x[-1]) # 输出:30
2.3 切片访问
print(x[1:]) # 输出:(20, 30)