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,一经查实,立即删除!

相关文章

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

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

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

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

红黑树的底层讲解

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

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

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

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

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

(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&#…

Redis 的安装与部署(图文)

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

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

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

如何设计开发RTSP直播播放器?

技术背景 我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。本文抛砖引玉,做个…

Unity 实战案例全解析 实现时间停止效果+世界变灰

画面里运动的那个小玩意这么写 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Partol : MonoBehaviour {public Transform pos1;public Transform pos2;public float speed;private Transform target;void Start() {target p…

前端开发攻略---取消已经发出但是还未响应的网络请求

目录 注意&#xff1a; 1、Axios实现 2、Fetch实现 3、XHR实现 注意&#xff1a; 当请求被取消时&#xff0c;只会本地停止处理此次请求&#xff0c;服务器仍然可能已经接收到了并处理了该请求。开发时应当及时和后端进行友好沟通。 1、Axios实现 <!DOCTYPE html> &…

性能测试工具JMeter

本次使用的博客系统的url&#xff1a; http://8.137.19.140:9090/blog_edit.html 1. JMeter介绍 环境要求&#xff1a;要求java&#xff0c;jdk版本大于8&#xff1b; Apache JMeter 是 Apache 组织基于 Java 开发的压⼒测试⼯具&#xff0c;⽤于对软件做性能测试&#xff1b…

带新手用一套坦克大战搞定Java核心编程

有不少在校大学生朋友私信笔者&#xff0c;觉得现在的Java教程学的比较枯燥&#xff0c;有没有能学到基础知识同时还有做项目感觉的教程。因为笔者最早接触Java时学的是马士兵老师、韩顺平老师这样的大佬当时出的教程&#xff0c;尤其印象深刻的是二位大佬的坦克大战项目&#…

基于DSP+ARM+FPGA的电能质量分析仪的软件设计

软件设计是电能质量设备的核心内容&#xff0c;上述章节详细介绍了电能质量参数的 算法&#xff0c;并且通过仿真实验进行了验证&#xff0c;本章将结合现代电能质量监测设备需求实 现算法在实际电网中应用。根据设计的电能质量分析仪的需求分析&#xff0c;进行总体的 软件…

Java筑基之路:运算符深入(下)

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f947;博主昵称&#xff1a;小菜元 &#x1f35f;博客主页…

计算机网络:数据链路层 —— 共享式以太网

文章目录 共享式以太网CSMA/CD 协议CSMA/CD 协议 的基本原理 共享式以太网的争用期共享式以太网的最小帧长共享式以太网的最大帧长共享式以太网的退避算法截断二进制指数退避算法 共享二进制以太网的信道利用率使用集线器的共享式以太网10BASE-T 共享式以太网 共享式以太网是当…