python+Mosh网课笔记02

 太久没写python代码了,学机器学习重新拾起python,笔记比较简陋。

参考:mosh的python教程

目录

一、控制流

二、函数functions

三、数据结构

list

stack

queue

tuple

swapping variables

array

sets

dictionary

解包


一、控制流

  • if判断
if xxx:xxx
elif xxx:xxx
else:xxx
  • and or not
  • 循环
for number in range(3):  # 从0开始,打到小于3的最小整数。print(number)for number in range(1, 4):  # 从1开始,打到小于4的最小整数。print(number)for number in range(1, 10, 2):  # 最后一个参数是stepprint(number)while xxx:xxx

二、函数functions

def mul(x):xxxxxxmul(x)

三、数据结构

list

letters = ["a", "b", "c"]
letters[0] = "A"  # 修改
print(letters[0:3])  # 从0开始3个元素。chars = list("Hello world")  # 每个字符都是一个元素。numbers = list(range(20))  # 0-19
print(numbers[::-1])  # 倒序输出
print(numbers[::2]) #step=2进行输出numbers = [1, 2, 3]
first, second, third = numbers  # 分别赋值1,2,3
numbers += [4, 4, 4, 4, 4]
first, second, *other, last = numbers
# 分别赋值1,2,last被赋值list最后一个元素,其他元素赋值在单独的list类型的other中。

函数传参 与 循环中的list

#pack into list
def mul(*numbers):xxx
mul(1, 2, 3, 4, 5)  # 会把这5个数打包到一个list中,传给numbers#loop over list
numbers = ["a", "b", "c"]
for number in numbers:print(number)for number in enumerate(numbers):print(number)  # 获得索引和元素eg:(0,'a)print(number[0])  # 获得索引for index, letter in enumerate(numbers):print(index, letter)

增删改查

letters = ["a", "b", "c"]# Add
letters.append("d")  # 在末尾添加元素
letters.insert(0, "-")  # 指定位置# Remove
letters.pop()  # 移除末尾元素
letters.pop(0)  # 移除指定位置元素
letters.remove("b")  # 移除指定元素
del letters[0:3]  # 移除指定范围元素。
letters.clear()  # 移除所有元素
print(letters)#find
letters = ["a", "b", "c", "a"]
print(letters.index("a"))  # 返回元素出现的第一个位置。
# 如果不存在,则报错,可以先判断是否存在:
if "d" in letters:print(letters.index("d"))print(letters.count("a"))  # 返回元素出现的个数。

排序

numbers = [3, 51, 2, 8, 6]
numbers.sort()  # 升序排列。
numbers.sort(reverse=True)  # 降序排列。
num = sorted(numbers)  # 返回一个新的列表,不改变原有的列表。
num = sorted(numbers, reverse=True)  # 返回新的降序列表。#复杂list排序。
items = [("Product1", 10),("Product2", 9),("Product3", 12),
]
items.sort()  # 按照每组第一个元素排序。
print(items)#按照第二个元素排序。
items = [("Product1", 10),("Product2", 9),("Product3", 12),
]
def sort_item(item):return item[1]
items.sort(key=sort_item)  。
print(items)#lambda写法。
items = [("Product1", 10),("Product2", 9),("Product3", 12),
]
items.sort(key=lambda item: item[1]) 
print(items)

map功能

items = [("Product1", 10),("Product2", 9),("Product3", 12),
]x = list(map(lambda item: item[1], items))
print(x)  # 10,9,12

filter功能

items = [("Product1", 10),("Product2", 9),("Product3", 12),
]x = list(filter(lambda item: item[1] >= 10, items))
print(x)
#[('Product1', 10), ('Product3', 12)]
items = [("Product1", 10),("Product2", 9),("Product3", 12),
]# x = list(map(lambda item: item[1], items))
x = [item[1] for item in items]
# x = list(filter(lambda item: item[1] >= 10, items))
x = [item for item in items if item[1] >= 10]
print(x)

zip功能

list1 = [1, 2, 3]
list2 = [10, 20, 30]print(list(zip(list1, list2)))
#[(1, 10), (2, 20), (3, 30)]print(list(zip("abc", list1, list2)))
# [('a', 1, 10), ('b', 2, 20), ('c', 3, 30)]

stack

browsing_session = []
browsing_session.append(1)
browsing_session.pop()
if browsing_session:  # 判断栈是否含元素。print(browsing_session[-1])  # 栈顶元素。

queue

from collections import deque
queue = deque([])
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)
queue.popleft()  # 队首元素出队列。
print(queue)
if not queue:  # 判断空。print("empty")

tuple

tuple类型只读,不能做增删改等操作。

point = (1, 2)
# tuple类型只读。
print(point)point = tuple("Hello World")
print(point)

swapping variables

x = 10
y = 11
x, y = y, x
print("x ", x)
print("y ", y)

array

数组内所有元素类型必须一样,比如都是int,都是float,或者都是str,否则报错。

from array import array #使用需导入包。

sets

set元素不重复。

numbers = [1, 1, 2, 3, 4, 5]
uniques = set(numbers)
print(uniques)
# {1, 2, 3, 4, 5}second = {1, 3, 3}
second.add(5)
second.remove(5)
print(len(second))second = {1, 3, 3}
first = {2, 3, 5}
print(first | second)  # {1, 2, 3, 5}
print(first & second)  # {3}
print(first - second)  # {2, 5}  减去second中相同的元素。
print(first ^ second)  # 舍去相同的元素合并。

dictionary

可以看作C++中的hash数组。计算字符串中字符出现的字数很方便。

# 2种声明方式。
point = {"x": 1, "y": 2}
point = dict(x=1, y=2)# modify
point["x"] = 10#delete
del point["x"]# add
point["z"] = 20# 如果不存在会报错,可以先判断。
if "a" in point:print(point["a"])print(point.get("x")) #返回对应key值,如果没有返回None#循环
for key in point:print(key, point[key])for key, value in point.items():print(key, value)
from pprint import pprint
sentence = "This is a common interview"char_frequency = {}
for char in sentence:if char in char_frequency:char_frequency[char] += 1else:char_frequency[char] = 1
pprint(char_frequency, width=1) #可以每行打印一个key,value。print(sorted(char_frequency.items(), key=lambda item: item[1]))

解包

values = [*range(5), *"Hello"]
print(values)
#[0, 1, 2, 3, 4, 'H', 'e', 'l', 'l', 'o']first = {"x": 1}
second = {"x": 10, "y": 2}
combined = {**first, **second, "z": 1}
print(combined)
#{'x': 10, 'y': 2, 'z': 1}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械臂力控方法概述(一)

目录 1. MoveIt 适用范围 2. 力控制框架与 MoveIt 的区别 3. 力控方法 3.1 直接力控制 (Direct Force Control) 3.2 间接力控制 (Indirect Force Control) 3.2.1 柔顺控制 (Compliant Control) 3.2.2 阻抗控制 (Impedance Control) 3.2.3 导纳控制 (Admittance Control…

Wordpress—一个神奇的个人博客搭建框架

wordpress简介 在当今数字化的时代,拥有一个属于自己的个人博客,不仅可以记录生活点滴、分享专业知识,还能展示个人风采。而在众多的博客搭建框架中,Wordpress 以其强大的功能和灵活性脱颖而出。今天,就让我们一起深入…

【秋招笔试】10.13拼多多(已改编)秋招-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集…

大数据研究实训室建设方案

一、概述 本方案旨在提出一套全面的大数据研究实训室建设策略,旨在为学生打造一个集理论学习与实践操作于一体的高端教育环境。实训室将专注于培养学生在大数据处理、分析及应用领域的专业技能,通过先进的设施配置、科学的课程体系和实用的实训模式&…

红黑树的底层讲解

一、红黑树的介绍 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是红(red)或黑(black)。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红…

FLINK SQL语法(1)

DDL Flink SQL DDL(Data Definition Language)是Flink SQL中用于定义和管理数据结构和数据库对象的语法。以下是对Flink SQL DDL的详细解析: 一、创建数据库(CREATE DATABASE) 语法:CREATE DATABASE [IF…

linux环境下的程序设计与git操作

目录 前言: 进度条小程序: 先介绍几个背景知识 代码实现 Git操作 总结 其他指令 前言: 本文将重点介绍1. linux下的程序设计,并使用linux下的几个函数接口。实现一个简单的小程序 2.本着开源精神,进行git操作。…

Vue详细入门(语法【三】)

今天滴的学习目标!!! Vue组件是什么?组件的特性和优势Vue3计算属性Vue3监听属性 在前面Vue详细入门(语法【一】——【二】)当中我们学习了Vue有哪些指令,它的核心语法有哪些?今天我们…

在 javascript 中使用相邻参数作为函数的默认值

更多好文,欢迎关注公众号Geek技术前线 默认参数值在JavaScript中已经存在一段时间了。但其实可以将前面的相邻参数作为默认值本身。 JavaScript自ES2015以来就支持默认参数值,但我们可能不知道的是,我们可以将之前的相邻参数作为默认值 fun…

(AtCoder Beginner Contest 375) 题解(下)

一、题解 第 E 题 3 Team Division 一眼看像背包,观察数据范围,合法的总能力值 ≤ 500 \le 500 ≤500,那么我们可以设计一个背包DP: int dp[110][510][510]; //dp[i][j][k] 表示前 i 个人,分给第一组的能力值是 j&…

微服务架构 --- 使用Seata处理分布式事务

目录 一.Seata 是什么? 1.Seata的核心架构: 2. Seata的分布式事务处理流程: 二.Seata的基本使用: 1.环境准备: 2.引入依赖: 3.加入配置来使用Seata: (1)首先在nacos上添加一…

免费版视频压缩软件:让视频处理更便捷

现在不少人已经习惯通过视频来记录生活、传播信息和进行娱乐的重要方式。但是由于设备大家现在录制的文件都会比较大,这时候就比较需要一些缩小视频的工具了。今天我们一起来探讨视频压缩软件免费版来为我们带来的生动世界。 1.Foxit视频压缩大师 链接直达&#x…

ESP32移植Openharmony外设篇(1)MQ-2烟雾传感器

外设篇 实验箱介绍 旗舰版实验箱由2部分组成:鸿蒙外设模块(支持同时8个工作)、鸿蒙平板。 其中,鸿蒙平板默认采用RK3566方案。 OpenHarmony外设模块采用底板传感器拓展板方式,底板默认采用ESP32方案,也…

青少年编程能力等级测评CPA C++一级试卷(1)

青少年编程能力等级测评CPA C一级试卷(1) 一、单项选择题(共20题,每题3.5分,共70分) CP1_1_1.在C中,下列变量名正确的是( )。 A.$123 B&#…

网络通信与并发编程(三)粘包现象解决方案、socketserver实现并发

粘包现象解决方案、socketserver实现并发 文章目录 粘包现象解决方案、socketserver实现并发一、粘包现象解决方案1.发送数据大小2.发送数据信息 二、socketserver实现并发1.tcp版的socketserver并发2.udp版的socketserver并发 一、粘包现象解决方案 1.发送数据大小 有了上一…

Redis 的安装与部署(图文)

前言 Redis 暂不支持Windows 系统,官网上只能下载Linux 环境的安装包。但是启用WSL2 就可以在Windows 上运行Linux 二进制文件。[要使此方法工作,需要运行Windows 10 2004版及更高版本或Windows 11]。本文在CentOS Linux 系统上安装最新版Redis&#xf…

力扣10.18

1463. 摘樱桃 II 给你一个 rows x cols 的矩阵 grid 来表示一块樱桃地。 grid 中每个格子的数字表示你能获得的樱桃数目。 你有两个机器人帮你收集樱桃,机器人 1 从左上角格子 (0,0) 出发,机器人 2 从右上角格子 (0, cols-1) 出发。 请你按照如下规则…

php常用设计模式之单例模式

设计模式是我们日常开发中最常用的编程模式之一,也是面试中最高频的考点之一。通过合理运用设计模式,可以使代码结构更加清晰、易于维护。通过这篇文章 我也讲一下设计模式中的单例模式,了解下它的原理和适用场景。 单例模式 单例模式&…

ArcGIS 最新底图服务地址

ArcGIS 最新底图服务地址 说明 先上地址: 地形图: https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer深色地形图:https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hi…

【C++】unordered_set、unordered_map超详细封装过程,处理底层细节

🚀个人主页:小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言1、数据泛型2、迭代器2.1 重载2.2 begin、end2.3 const迭代器2.4 unordered_map中[]重载 3、特殊类型 总结 前…