Python入门(五)列表(二)

news2024/11/24 20:40:30

列表(二)

  • 1.组织列表
    • 1.1 使用方法sort()对列表永久排序
    • 1.2 使用函数sorted()对列表临时排序
    • 1.3 倒着打印列表
    • 1.4 确定列表的长度
    • 1.5 使用列表时避免索引错误
  • 2.操作列表
    • 2.1 遍历整个列表
      • 2.1.1 for循环
      • 2.1.2 在for循环中执行更多操作
      • 2.1.3 在for循环结束后执行一些操作
    • 2.2 避免不该发生的错误
      • 2.2.1 忘记缩进
      • 2.2.2 忘记缩进额外的代码行
      • 2.2.3 不必要的缩进
      • 2.2.4 循环后不必要的缩进
      • 2.2.5 遗漏了冒号
    • 2.3 创建数值列表
      • 2.3.1 使用函数range()
      • 2.3.2 使用range()创建数字列表
      • 2.3.3 对数字列表执行简单的统计计算
    • 2.4 使用列表的一部分
      • 2.4.1 切片
      • 2.4.2 遍历切片
      • 2.4.3 复制列表
    • 2.5 元组

作者:Xiou

1.组织列表

在我们创建的列表中,元素的排列顺序常常是无法预测的,因为我们并非总能控制用户提供数据的顺序。这虽然在大多数情况下是不可避免的,但我们经常需要以特定的顺序呈现信息。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。

1.1 使用方法sort()对列表永久排序

Python方法sort()让你能够较为轻松地对列表进行排序。假设我们有一个汽车列表,并要让其中的汽车按字母顺序排列。为简化这项任务,假设该列表中的所有值都是小写的。

  cars = ['bmw', 'audi', 'toyota', 'subaru']
  cars.sort()
  print(cars)

方法sort()永久性地修改列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序:

在这里插入图片描述

还可以按与字母顺序相反的顺序排列列表元素,只需向sort()方法传递参数reverse=True即可。下面的示例将汽车列表按与字母顺序相反的顺序排列:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

输出结果:
在这里插入图片描述

1.2 使用函数sorted()对列表临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

下面尝试来对汽车列表调用这个函数。

  cars = ['bmw', 'audi', 'toyota', 'subaru']

  print("Here is the original list:")
  print(cars)

  print("\nHere is the sorted list:")
  print(sorted(cars))

  print("\nHere is the original list again:")
  print(cars)

首先按原始顺序打印列表,再按字母顺序显示该列表。以特定顺序显示列表后,我们进行核实,确认列表元素的排列顺序与以前相同。

在这里插入图片描述

注意,调用函数sorted()后,列表元素的排列顺序并没有变。如果要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。

1.3 倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse()。假设汽车列表是按购买时间排列的,可轻松地按相反的顺序排列其中的汽车:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)

cars.reverse()
print(cars)

注意,reverse()不是按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序:

在这里插入图片描述

方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,只需对列表再次调用reverse()即可。

1.4 确定列表的长度

使用函数len()可快速获悉列表的长度。在下面的示例中,列表包含四个元素,因此其长度为4:

cars = ['bmw', 'audi', 'toyota', 'subaru']
l=len(cars)
print(l)

在这里插入图片描述

1.5 使用列表时避免索引错误

刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取第四个元素.

Python试图向你提供位于索引3处的元素,但它搜索列表motorcycles时,却发现索引3处没有元素。鉴于列表索引差一的特征,这种错误很常见。有些人从1开始数,因此以为第三个元素的索引为3。

然而在Python中,第三个元素的索引为2,因为索引是从0开始的。索引错误意味着Python在指定索引处找不到元素。程序发生索引错误时,请尝试将指定的索引减1,然后再次运行程序,看看结果是否正确。

别忘了,每当需要访问最后一个列表元素时,都可使用索引-1。这在任何情况下都行之有效,即便你最后一次访问列表后,其长度发生了变化.

2.操作列表

如何遍历整个列表,这只需要几行代码,无论列表有多长。循环让你能够对列表的每个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表,包括包含数千乃至数百万个元素的列表。

2.1 遍历整个列表

2.1.1 for循环

我们经常需要遍历列表的所有元素,对每个元素执行相同的操作。
例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章列表中的每个标题。需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环。

假设我们有一个魔术师名单,需要将其中每个魔术师的名字都打印出来。为此,可以分别获取名单中的每个名字,但这种做法会导致多个问题。例如,如果名单很长,将包含大量重复的代码。

另外,每当名单的长度发生变化时,都必须修改代码。

通过使用for循环,可以让Python去处理这些问题。

下面使用for循环来打印魔术师名单中的所有名字:

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)

首先,像第3章那样定义一个列表。接下来,定义一个for循环。这行代码让Python从列表magicians中取出一个名字,并将其与变量magician相关联。最后,让Python打印前面赋给变量magician的名字。这样,对于列表中的每个名字,Python都将重复执行代码行。你可以这样解读这些代码:对于列表magicians中的每位魔术师,都将其名字打印出来。输出很简单,就是列表中所有的名字:

在这里插入图片描述

2.1.2 在for循环中执行更多操作

在for循环中,可对每个元素执行任何操作。下面来扩展前面的示例,对于每位魔术师,都打印一条消息,指出他的表演太精彩了。

  magicians = ['alice', 'david', 'carolina']
  for magician in magicians:
     print(f"{magician.title()}, that was a great trick!")

相比于前一个示例,唯一的不同是为每位魔术师打印了一条以其名字为抬头的消息。这个循环第一次迭代时,变量magician的值为’alice’,因此Python打印的第一条消息的抬头为’Alice’;第二次迭代时,消息的抬头为’David’;第三次迭代时,抬头为’Carolina’。

在这里插入图片描述

在for循环中,想包含多少行代码都可以。在代码行for magician in magicians后面,每个缩进的代码行都是循环的一部分,将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。

2.1.3 在for循环结束后执行一些操作

for循环结束后怎么办呢?通常,你需要提供总结性输出或接着执行程序必须完成的其他任务。

在for循环后面,没有缩进的代码都只执行一次,不会重复执行。下面来打印一条向全体魔术师致谢的消息,感谢他们的精彩表演。想要在打印给各位魔术师的消息后面打印一条给全体魔术师的致谢消息,需要将相应的代码放在for循环后面,且不缩进:

  magicians = ['alice', 'david', 'carolina']
  for magician in magicians:
      print(f"{magician.title()}, that was a great trick!")
      print(f"I can't wait to see your next trick, {magician.title()}.\n")

  print("Thank you, everyone. That was a great magic show!")

我们在前面看到了,开头两个函数调用print()针对列表中的每位魔术师重复执行。然而,第三个函数调用print()没有缩进,因此只执行一次:
在这里插入图片描述

使用for循环处理数据是一种对数据集执行整体操作的不错方式。例如,你可能使用for循环来初始化游戏:遍历角色列表,将每个角色显示到屏幕上。然后在循环后面添加一个不缩进的代码块,在屏幕上绘制所有角色后显示一个Play Now按钮。

2.2 避免不该发生的错误

Python根据缩进来判断代码行与前一个代码行的关系。在前面的示例中,向各位魔术师显示消息的代码行是for循环的一部分,因为它们缩进了。Python通过使用缩进让代码更易读。简单地说,它要求你使用缩进让代码整洁而结构清晰。

在较长的Python程序中,你将看到缩进程度各不相同的代码块,从而对程序的组织结构有大致的认识。开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。

例如,程序员有时候会将不需要缩进的代码块缩进,而对于必须缩进的代码块却忘了缩进。查看这样的错误示例有助于你以后避开它们,以及在它们出现在程序中时进行修复。

2.2.1 忘记缩进

对于位于for语句后面且属于循环组成部分的代码行,一定要缩进。如果忘记缩进, Python会提醒你。

2.2.2 忘记缩进额外的代码行

有时候,循环能够运行且不会报告错误,但结果可能出人意料。试图在循环中执行多项任务,却忘记缩进其中的一些代码行时,就会出现这种情况。

这是一个逻辑错误。从语法上看,这些Python代码是合法的,但由于存在逻辑错误,结果并不符合预期。如果你预期某项操作将针对每个列表元素都执行一次,但它总共只执行了一次,请确定需要将一行还是多行代码缩进。

2.2.3 不必要的缩进

如果你不小心缩进了无须缩进的代码行,Python将指出这一点。为避免意外缩进错误,请只缩进需要缩进的代码。在前面编写的程序中,只有要在for循环中对每个元素执行的代码需要缩进。

2.2.4 循环后不必要的缩进

如果不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。在有些情况下,这可能导致Python报告语法错误,但在大多数情况下,这只会导致逻辑错误。

这也是一个逻辑错误。Python不知道你的本意,只要代码符合语法,它就会运行。如果原本只应执行一次的操作执行了多次,可能要对执行该操作的代码取消缩进。

2.2.5 遗漏了冒号

for语句末尾的冒号告诉Python,下一行是循环的第一行。这种错误虽然易于消除,但并不那么容易发现。程序员为找出这样的单字符错误,花费的时间多得令人惊讶。此类错误之所以难以发现,是因为通常在人们的意料之外。

2.3 创建数值列表

需要存储一组数的原因有很多。例如,在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分;在数据可视化中,处理的几乎都是由数(如温度、距离、人口数量、经度和纬度等)组成的集合。

列表非常适合用于存储数字集合,而Python提供了很多工具,可帮助你高效地处理数字列表。明白如何有效地使用这些工具后,即便列表包含数百万个元素,你编写的代码也能运行得很好。

2.3.1 使用函数range()

Python函数range()让你能够轻松地生成一系列数。例如,可以像下面这样使用函数range()来打印一系列数:

for value in range(1, 5):
    print(value)

输出结果:

在这里插入图片描述

在这个示例中,range()只打印数1~4。这是编程语言中常见的差一行为的结果。函数range()让Python从指定的第一个值开始数,并在到达你指定的第二个值时停止。因为它在第二个值处停止,所以输出不包含该值(这里为5)。

使用range()时,如果输出不符合预期,请尝试将指定的值加1或减1。调用函数range()时,也可只指定一个参数,这样它将从0开始。例如,range(6)返回数0~5。

2.3.2 使用range()创建数字列表

要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将是一个数字列表。

在前一节的示例中,只是将一系列数打印出来。要将这组数转换为列表,可使用list():

numbers = list(range(1, 6))
print(numbers)

在这里插入图片描述

使用函数range()时,还可指定步长。为此,可给这个函数指定第三个参数,Python将根据这个步长来生成数。

例如,下面的代码打印1~10的偶数:

even_numbers = list(range(2, 11, 2))
print(even_numbers)

输出结果:

[2, 4, 6, 8, 10]

2.3.3 对数字列表执行简单的统计计算

有几个专门用于处理数字列表的Python函数。例如,你可以轻松地找出数字列表的最大值、最小值和总和:

digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
m=min(digits)
s=sum(digits)
print(m)
print(s)

在这里插入图片描述

2.4 使用列表的一部分

2.4.1 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python在到达第二个索引之前的元素后停止。要输出列表中的前三个元素,需要指定索引0和3,这将返回索引为0、1和2的元素。下面的示例处理的是一个运动队成员列表:

  players = ['charles', 'martina', 'michael', 'florence', 'eli']
  print(players[0:3])

输出结果:打印该列表的一个切片,其中只包含三名队员。输出也是一个列表,其中包含前三名队员:

['charles', 'martina', 'michael']

你可以生成列表的任意子集。

无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。上一章说过,负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任意切片。例如,如果要输出名单上的最后三名队员,可使用切片players[-3:]:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])

上述代码打印最后三名队员的名字,即便队员名单长度发生变化,也依然如此。

2.4.2 遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片。下面的示例遍历前三名队员,并打印他们的名字:

  players = ['charles', 'martina', 'michael', 'florence', 'eli']

  print("Here are the first three players on my team:")
  for player in players[:3]:
      print(player.title())

代码没有遍历整个队员列表,而只遍历前三名队员:

在这里插入图片描述

在很多情况下,切片都很有用。例如,编写游戏时,你可以在玩家退出游戏时将其最终得分加入一个列表中,然后将该列表按降序排列以获取三个最高得分,再创建一个只包含前三个得分的切片;处理数据时,可使用切片来进行批量处理;编写Web应用程序时,可使用切片来分页显示信息,并在每页显示数量合适的信息。

2.4.3 复制列表

我们经常需要根据既有列表创建全新的列表。下面来介绍复制列表的工作原理,以及复制列表可提供极大帮助的一种情形。

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素、终止于最后一个元素的切片,即整个列表的副本。

例如,假设有一个列表包含你最喜欢的四种食品,而你想再创建一个列表,并在其中包含一位朋友喜欢的所有食品。

不过,你喜欢的食品,这位朋友也都喜欢,因此可通过复制来创建这个列表:

  my_foods = ['pizza', 'falafel', 'carrot cake']
  friend_foods = my_foods[:]

  print("My favorite foods are:")
  print(my_foods)

  print("\nMy friend's favorite foods are:")
  print(friend_foods)

首先,创建一个你喜欢的食品列表,名为my_foods。然后创建一个名为friend_foods的新列表。在不指定任何索引的情况下从列表my_foods中提取一个切片,从而创建这个列表的副本,并将该副本赋给变量friend_foods。打印这两个列表后,我们发现其包含的食品相同:

在这里插入图片描述

2.5 元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候我们需要创建一系列不可修改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

定义元组:

元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索引来访问其元素,就像访问列表元素一样。例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:

  dimensions = (200, 50)
  print(dimensions[0])
  print(dimensions[1])

首先定义元组dimensions,为此使用了圆括号而不是方括号。接下来,分别打印该元组的各个元素,使用的语法与访问列表元素时使用的语法相同:

200
50

下面来尝试修改元组dimensions的一个元素,看看结果如何:

  dimensions = (200, 50)
  dimensions[0] = 250

试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值:

在这里插入图片描述

这很好,因为我们希望Python在代码试图修改矩形的尺寸时引发错误。

严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号。

修改元组变量:
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

  dimensions = (200, 50)
  print("Original dimensions:")
  for dimension in dimensions:
      print(dimension)

  dimensions = (400, 100)
  print("\nModified dimensions:")
  for dimension in dimensions:
      print(dimension)

首先定义一个元组,并将其存储的尺寸打印出来。接下来,将一个新元组关联到变量dimensions。然后,打印新的尺寸。这次,Python不会引发任何错误,因为给元组变量重新赋值是合法的:

在这里插入图片描述

相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,就可以使用元组。

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

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

相关文章

用C语言编写,计算并输出下列多项式值 s=1+1/(1+2)+1/(1+2+3)+ ..1/(1+2+3...+50)

C/C语言程序设计题目 用C语言编写&#xff0c;计算并输出下列多项式值 s11/(12)1/(123) …1/(123…50) C语言设计编程代码 #include <stdio.h>int main() {double s 0; // 初始化s的值为0int n 0; // 初始化n的值为0for (int i 1; i < 50; i) {n i; // 累加n的…

scatterlist

在内核驱动程序的很多代码中&#xff0c;都能够看到类似sgdma的内容&#xff0c;sgdma全称为Scatter/Gather DMA(散列/收集 DMA)&#xff0c;内核中抽象了scatterlist和sg table用来描述和管理这种需要做散列和收集的DMA缓冲区。在内核中设计scatterlist&#xff0c;主要出于两…

BDCC - Lambda VS Kappa

文章目录 概述区别Lambda架构:Kappa架构:总结 适用场景:案例:小结 概述 Lambda架构和Kappa架构都是用于处理大数据的架构模式。 Lambda架构使用了批处理和流处理两种不同的处理方式来处理数据。数据首先通过流处理层进行实时处理&#xff0c;然后再通过批处理层进行离线处理&…

开源C#代码生成器,SmartSoftHelp 开发辅助工具

开源代码生成器&#xff0c;支持自定义生成代码&#xff0c;开源生成代码&#xff0c;自己编写生成格式&#xff0c;最方便的代码生成器 下载地址&#xff1a; 百度网盘 请输入提取码

《时间从来不语,却回答了所有问题》笔记三

目录 感悟 经典摘录 假若我再上一次大学 不完满才是人生 走运与倒霉 毁誉 我的座右铭 二月兰 观天池 火车上观日出 感悟 人这个万物之灵却偏偏有了感情&#xff0c;有了感情就有了悲欢。自古及今&#xff0c;海内海外&#xff0c;一个百分之百完满的人生是没有的&…

《Java虚拟机学习》JVM虚拟机是如何执行方法

1. 重载与重写方法 重载 重载 &#xff1a;同一个类中&#xff0c;方法名相同&#xff0c;形参列表不用&#xff0c;与返回值无关 对于重载方法的执行&#xff0c;JVM遵循下面的三条规则&#xff1a; 在不考虑对基本类型自动装拆箱&#xff08;auto-boxing&#xff0c;auto-…

图嵌入表示学习—Graph Embeddings

Embedding Entire Graphs 一、图嵌入向量基本概念 与Node Embeddings不同&#xff0c;Graph Embeddings是对整个图或子图进行编码而忽略其中的节点。应用场景包括异常检测或分子有毒检测。 二、对Node Embeddings求和或求和后平均 如图&#xff0c;首先对图/子图中的节点进行…

shell与shell script 学习总结

文章目录 shell与shell script 学习总结vivim可视化区块多文件编辑多窗口功能vim环境设置与记录中文编码问题语系编码转换 Shell的变量功能变量的使用与设置echo(变量的使用)变量设置的规则 环境变量的功能env(观察环境变量)set(观察所有变量)unset(取消变量) locale(语系变量)…

【Hello Network】TCP协议相关理解

作者&#xff1a;小萌新 专栏&#xff1a;网络 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;补充下对于TCP协议的各种理解 TCP协议相关实验 TCP相关试验理解CLOSE_WAIT状态理解TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法理解listen的…

分布式 03 富文本处理插件和图片文件上传

01.使用富文本编辑器来上传图片文件。 02.最开始在html文件中去使用相关富文本的插件。 引入相关文件 <link href"/js/kindeditor-4.1.10/themes/default/default.css" type"text/css" rel"stylesheet"> <script type"text/java…

Redis面试题(上)

1.什么是 Redis&#xff1f; Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 Strin…

Python机器学习入门 -- 支持向量机学习笔记

文章目录 前言一、支持向量机简介二、支持向量机的数学原理1. 距离解算2. 目标函数3. 约束下的优化求解4. 软间隔优化5. 核函数变换 三、Python实现支持向量机1. 惩罚力度对比2. 高斯核函数3. 非线性SVM 总结 前言 大部分传统的机器学习算法都可以实现分类任务&#xff0c;但这…

干货丨你真的了解反应持续时间吗?

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 在今天的推文里&#xff0c;要给大家分享的是一种灵活、免费的心理科学工具——反应持续时间&#xff0c;快来一起看看哦~ 01 导读 简单按键的反应持续时间是一种容易获得但未被充分利用…

C++相比于C语言增加的8个小特性(详解)

C相比于C语言增加的8个小特性&#xff08;详解&#xff09; 文章目录 C相比于C语言增加的8个小特性&#xff08;详解&#xff09;一、命名空间二、C输入和输出三、缺省参数四、函数重载五、引用六、内联函数七、auto关键字八、指针空值nullptr总结 一、命名空间 c的命名空间是…

从一到无穷大 #8 Arrow,Parquet and ORC

文章目录 引言ArrowParquetNested EncodingRepetition LevelsDefinition Levels 列化压缩 ORC 引言 以我的机器为例来做一个简单的计算&#xff1a; 执行cat /proc/cpuinfo |grep MHz|uniq可以看到目前机器中CPU频率&#xff0c;得到值 2494.140MHZ&#xff5e;2494140000HZ&…

【算法】——全排列算法讲解

前言&#xff1a; 今天&#xff0c;我给大家讲解的是关于全排列算。我会从三个方面去进行展开&#xff1a; 首先&#xff0c;我会给大家分析关于全排列算法的思想和定义&#xff1b;紧接着通过手动实现出一个全排列代码来带大家见见是怎么实现的&#xff1b;最后我会给出两道题…

ESP32单片机入门篇

目录 一、ESP32单片机的基本概念 1.双核架构 2. Wi-Fi和蓝牙功能 3. 集成多种外设 4. 支持多种操作系统 二、开发环境 1. Arduino IDE 2. ESP-IDF 三、开发语言 四、注意事项 五、代码例程 &#xff08;1&#xff09;点亮LED灯 1. 电路图 2. 代码 3. 代码注释 …

【精品】Java-Stream流详解

Java-Stream流详解 如何学会JDK8中的Stream流&#xff0c;用它来提高开发效率&#xff1f;创建不可变的集合&#xff08;Immutable 不可变的&#xff09;场景方法 初试 Stream 流Stream 流的思想Stream 流的作用Stream 流的使用步骤Stream 流的中间方法Stream 流的终结方法 如何…

STM32:利用PWM波控制飞盈电调过程和注意事项

STM32&#xff1a;利用PWM波控制电调过程和注意事项 在进行模型控制的过程中&#xff0c;如四旋翼无人机等&#xff0c;需要用到电机&#xff0c;这些电机需要通过电调来控制电机的转速。在电调模块中带有的说明书一般都是利用遥控器进行控制&#xff0c;有些情况需要自己通过…

【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型

CodeGeeX&#xff1a;用于代码生成的多语言预训练模型 《CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X》 论文地址&#xff1a;https://arxiv.org/pdf/2303.17568.pdf 相关博客 【自然语言处理】【大模型】CodeGeeX&#…