算法入门(一)Python基础(list、dict、set、tuple、for、enumerate、lambda、sorted)

文章目录

简介

本人前端准备转算法,正在学习路上,跟大家一起分享下学习历程,第一步学好python的基础,为后面的学习打下根基。没有太华丽的词语,全是干货。

list (列表)

python 复制代码
nums = [1, 2, 3, 4]
names = ["张三", "李四", "王五"]
有顺序、可修改、可重复

取值 print(nums[0])   # 10
增加 nums.append(40)   # [10,20,30,40]
删除 nums.pop()       # 删除最后一个
    nums.remove(20)   # 删除指定值
修改 nums[0] = 100
python 复制代码
AI里怎么用?
loss_list = [0.9, 0.7, 0.5, 0.3]

dict (字典)

python 复制代码
key → value(键值对)
person = {
    "name": "张三",
    "age": 18
}
取值 print(person["name"])
新增 / 修改 person["age"] = 20 person["gender"] = "男"
遍历
for k, v in person.items():
    print(k, v)
python 复制代码
AI里怎么用?
result = {
    "cat": 0.8,
    "dog": 0.2
}

set (集合)

python 复制代码
去重神器
nums = [1,1,2,2,3]
nums = list(set(nums))
无序、不重复

tuple(元组)

python 复制代码
不能改的 list
t = (1, 2, 3)
不可修改(只读)
防止数据被改
python 复制代码
图像尺寸不会乱改
shape = (224, 224)

for (循环)

python 复制代码
nums = [1, 2, 3]
for n in nums:
    print(n)

enumerate

python 复制代码
拿到 索引 + 值
nums = [10, 20, 30]
for i, val in enumerate(nums):
    print(i, val)
python 复制代码
AI常用
for i, (img, label) in enumerate(dataloader):
    pass

lambda (简写函数)

python 复制代码
普通函数写法
def add(x):
    return x + 1
    
f = lambda x: x + 1
print(f(5))  # 6

sorted(排序)

python 复制代码
nums = [3, 1, 2]
print(sorted(nums))  # [1,2,3]

练习

python 复制代码
# 有一组数据
data = [5, 3, 9, 1, 7]
# 1 排序
# 2 打印索引 + 值
# 3 过滤出大于5的数

data = [5, 3, 9, 1, 7]

# 1 排序
sorted_data = sorted(data)
print("排序后的数据:", sorted_data)

# 2 打印索引 + 值
for index, value in enumerate(sorted_data):
    print(f"索引: {index}, 值: {value}")

# 3 过滤出大于5的数
print("大于5的数:")
for index, value in enumerate(sorted_data):
    if value > 5:
        print(f"索引: {index}, 值: {value}")

进阶列表推导式
filtered = sorted([x for x in data if x > 5])
print(filtered)
for x in data → 遍历原列表 data
if x > 5 → 只取大于 5 的元素
x → 表达式就是原值,也可以做计算,比如 x*2
python 复制代码
students = [
    {"name":"张三", "score":80},
    {"name":"李四", "score":90},
    {"name":"王五", "score":70}
]

sorted(students, key=lambda x: x["score"], reverse=True)
# 按成绩从高到低排序
相关推荐
一叶落4382 小时前
LeetCode 134. 加油站(贪心算法详解 + C语言实现)
c语言·数据结构·算法·leetcode·贪心算法
say_fall2 小时前
位运算底层逻辑与解题应用绪论
c++·学习·算法·leetcode·职场和发展
熙金顺乐葵攘2 小时前
Web2py Grid 组件实现主从双表联查,卡片订单UI展现、全字段搜索导出的改造
python·web2py
陌雨’2 小时前
提取b站视频的ai字幕
爬虫·python
Σίσυφος19002 小时前
为什么 Generalized ICP(GICP)通常比 Point-to-Plane 更稳定?
算法
weipt2 小时前
FBX转3DTiles带坐标的高效转换工具
python
j_xxx404_2 小时前
常见位运算基础知识,技巧总结以及力扣实战
数据结构·c++·算法·leetcode
RuiBo_Qiu2 小时前
【LLM进阶-后训练&部署】1. 大语言模型全参数微调:从前向推理到反向传播的底层原理解析
人工智能·算法·语言模型·自然语言处理·ai-native
小王不爱笑1322 小时前
Java List 集合全面解析:ArrayList、LinkedList 与 Vector 的深度对比
java·windows·list