WeSeong 登录
← 返回文章列表
编程语言

Python 列表, 元组, 词典、函数

Python 列表, 元组, 词典、函数

一、概述

Python的 Collections例如,这包括 列表(List), 元组(Tuple), 词典 (Dictionary)有的。 列表是按顺序组织的数据集。任何数据类型都可以使用。 元组 列表它几乎相同,但只能读取。一个字典 Key和 Value它是以分割的格式存储的数据集合。 列表, 元组, 字典提供了有用的功能,支持添加、删除、修改、检索和搜索等操作。这些功能执行特定的操作,就像神奇的魔盒一样。 Python在 功能函数可以有参数并返回一个值。函数中存在局部变量和全局变量的概念。局部变量仅影响该函数,而全局变量可以被多个函数共享。


内置



Ⅱ. Python 列表

Python在 列表(List)要了解 堆栈 (Stack), 队列 (Queue), Deku(deck) Dequeue)你不需要完全理解这些概念,但一旦你使用它们几次,就能立即使用它们了。由于许多概念只需要基本了解堆栈、队列和双端队列即可,我们在这里就不再详细介绍了。你可以在其他博客或文章中轻松找到更详细的解释,因此我们建议你至少阅读一遍。


堆栈是 后退退出 (Last In First Out—LIFO) 当数据进入结构时,它会被堆叠在最上面,而当需要检索或利用数据时,首先会处理最后输入的数据。队列 先到先得 (First come, first served)First In First Out; FIFO)它与堆栈不同之处在于,输入的第一个数据是输出的第一个数据。D-CUY 通过确保数据以正确的顺序输入和输出来弥补线性队列的缺点。 您可以按照任意顺序插入和删除数据。 您可以选择删除输入的第一个数据或最后一个输入的数据。


在 Python 中, 列表 可以将多个数据按数据类型分组,以创建一个集合。举一个简单的现实世界的例子,当几个学生聚集在学校的一个班级中时,班级就是学生的整体容器,而学生则是单独的容器。在这种情况下, 列表 是班级,而学生则可以是数据。列表 具有 index 的概念,就像每个学生都有一个学生 ID 号一样。使用 列表 创建的数据具有一个数字,用于指示它是哪种数据。


请注意,索引号从 0 开始,而不是从 1 开始。这与计算机以机器语言运行程序有关,而机器语言基于 0 和 1。


列表在创建时

list = []
list = [1, 2, 3, 4]

可以以这种形式生成。在上述示例中,有一个尚无数据的空字段。 列表这里有四个数字: 列表在这种情况下,以下情况 列表基于此,第一个数据索引为 0,值为 1,第二个为 1,2 ··· 这样,每个索引号都与相应的数据进行匹配。 列表它可以采取多种形式。

编程语言和 Python (变量、运算符、数据类型)

如果参考之前的帖子,您可以将四种数据类型(数据类型) – 整数、浮点数、字符串和布尔值 – 定义为 列表.


※ Python其中一个独特的特点是,除了基本数据类型之外, 列表以后我会学会的。 元组, 字典也是如此 列表对于一个数据你也可以参加!


这样,所有数据类型都可以转换为 列表。要访问 列表 中的数据,可以直接使用索引号,也可以使用循环。

list = [1, 2, 3, 4]
print(list[0])
결과 출력 ==> 1

for i in list :
    print(i, "", end="")
결과 출력 ==> 1 2 3 4

这里,Python 的另一个独特特征是,它可以对 列表 和 进行加法和乘法运算。通过将两个 列表 加起来或将一个 列表 乘以一个特定数字,可以创建一个包含多个重复数据的 列表。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(list1 + list2)
결과 출력 ==> [1, 2, 3, 4, 5, 6]

print(list1 * 2)
결과 출력 ==> [1, 2, 3, 1, 2, 3]


列表数据 更改在进行此操作时,也可以使用索引号。

list = ['a', 'b', 'c']
list[1] = 'd'
print(list)
결과 출력 ==> ['a', 'd', 'c']

list[2:3] = ['e', 'f']
print(list)
결과 출력 ==> ['a', 'd', 'e', 'f']

Python有趣的是,索引号可以指定为一个范围,而不是使用一个单一的数字。在上述示例中,索引前面的数字指定从哪个数据项开始。 初始值而背后的数字 最多支持多少个数据 表示 for 语句中的表达式 range() 它的工作原理与函数类似。如果您未指定初始值,则会指定第一个数据点,如果要按倒序指定数据,则可以使用 -1, -2 等。 ··· 你可以使用它。


列表有添加、删除、计数、排序、反转和复制数据的函数。

list = [1, 2, 3]
list.append(10)
print(list)
결과 출력 ==> [1, 2, 3, 10]

list.insert(1, 20)
print(list)
결과 출력 ==> [1, 20, 2, 3, 10]

这两个函数 列表作为一个添加数据的功能 append()在这种情况下,它会将数据添加到末尾 insert()在这种情况下,它需要两个参数:第一个参数是要插入数据的位置,第二个参数是数据本身。


list = [1, 2, 3, 4, 5]
del(list[0])
print(list)
결과 출력 ==> [2, 3, 4, 5]

del(list) ==> 리스트를 통째로 없앰

list = [1, 2, 3]
list.remove(2)
print(list)
결과 출력 ==> [1, 3]

list = [1, 2, 3]
list.pop()
3
print(list)
결과 출력 ==> [1, 2]

del() 和 remove() 是从 列表 中删除数据的函数。对于 del() 函数,它可以删除特定的数据或整个 列表。remove() 只删除 列表 中的特定数据,并只删除重复数据的第一个实例。pop() 删除 列表 中的最后一条数据并返回它。


count() 函数很简单。如果将要查找的数据作为参数传递,它会告诉你有多少个该数据的实例。您可以使用 列表.count(要查找的值)。


list = [1, 4, 2, 5, 3]
list.sort()
print(list)
결과 출력 ==> [1, 2, 3, 4, 5]

未按顺序排序 列表当您要排序时 sort() 使用该函数。默认情况下,它按升序排序,并接受参数 sort(reverse=True)如果您插入它,则会按降序排序。


当你实际学习时,你可能会被分配实现排序算法的任务。这非常困难,但却很有帮助,而且有许多不同的排序方法,每种方法都需要不同的时间来进行排序。你还可以通过使用条件语句和循环来创建算法,这很有趣。我强烈推荐这项工作。


list = [20, 10, 40, 50, 30]
list.reverse()
print(list)
결과 출력 ==> [30, 50, 40, 10, 20]

list = [1, 2, 3]
copyList = list.copy()
print(copyList)
결과 출력 ==> [1, 2, 3]

reverse() 函数以倒序的方式反转数据位置,从 列表 中的最后一个数据开始。copy() 函数将 列表 拷贝到新的 列表 中。如上例所示,新拷贝的 列表 可以存储在一个新变量中。


※ 列表在复制时需要记住的关键概念是 浅拷贝Shallow Copy)和 深拷贝Deep Copy)有的。已经有许多介绍这个概念的优秀文章,所以我来简单解释一下,浅拷贝与现有的深拷贝类似。 列表由于它只复制地址值,因此是新复制的 列表我已经习惯了。 列表如果一个变量被修改,另一个也会随之变化。深度复制会创建新的内存空间,并使用现有的内存空间。 列表由于它只复制实际数据,因此不受数据变化的影响。


如果您了解列表的概念,那么了解二维列表是很有用的。

list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

它的结构是这样的。 列表为了利用这一点,您需要使用嵌套循环。虽然可以以多种方式使用,但我们建议您仔细练习,因为这是一个具有挑战性的概念。 二维 列表在调用特定数据时,索引号为 2。 'list[0][1] =2' 你可以这样称呼它。 二维 列表要了解 数学矩阵知道这件事很好。而且 二维 列表如果我们能够妥善利用它, '[[[《四块拼图》]] 您也可以创建自己的游戏。由于难度可能一开始就很高,因此我们建议您在尝试之前仔细阅读书籍或其他博客。



Ⅲ. Python 元组

元组(Tuple) 列表无法写入 只读 列表这样想就很容易了。其他特征都是一样的。 列表在使用的功能中 del() 您只能删除一个数据,而不能删除多个数据。 列表只有在完全删除它之后。稍后 常量研究这个概念是很有意义的。 '最初,赋予变量的值保持不变;它是一个常量。也就是说。 元组将其视为一系列常量是个好主意。

tuple1 = (1, 2, 3)
tuple2 = 1, 2, 3

tuple3 = (10,)
tuple4 = 10,

元组在生成时必须指定数据。这些数据在整个生成过程中保持不变并得到维护。 列表但不同 '()' 括号使用 . 列表 '[]' 支架使用。它只有一个数据 元组要创建一个,就像上述示例中一样,将数据放在后面 ',(逗号)'你需要将其连接起来。 元组 列表与数组一样,它可以通过索引号进行访问,还可以进行加法和乘法!


※ 此外 列表和 元组存在可以用来相互转换的函数。 列表 元组用 元组 列表它转换了表单 列表当您要转换时 list(元组), 元组当您要转换时 tuple(列表) 您可以这样使用它。



IV. Python 字典

词典 (Dictionary)如果你想到一个英语字典,两对组成一个数据项,其中一个是键。Key), 另一个是价值 (Value)Value)变成了这个。

dict = {'a':1, 'b':2, 'c':3}
dict = {1:'a', 2:'b', 3:'c'}

在创建词典时,如上述示例所示 '{}' 支架您可以为键使用任何数据类型。 但是,密钥不能重复。 而且 列表但不同 订单没有人。

dict = {1:'a', 2:'b'}
print(dict[1])
출력 결과 ==> a

列表使用索引号来访问数据,但字典 以千字节为单位访问数据如果您将键放在括号中,如上述示例所示,则会返回对应的值。在向字典添加数据时 'dict[키] = 값'您可以以键值对的形式指定值,但如果插入重复的键,则之前存在的值将被删除,并用新指定的值替换。在添加值时,始终需要将它们指定为键和值的组合。 列表以及 del() 您可以使用函数删除它。


dict = {'가수':'트와이스', '인기곡':'Cheer Up!', '데뷰':'서바이벌 식스틴'}
print(dict.keys())
결과 출력 ==> ['가수', '인기곡', '데뷰']
print(dict.values())
결과 출력 ==> ['트와이스', 'Cheer Up!', '서바이벌 식스틴']
print(dict.items())
결과 출력 ==> [('가수', '트와이스'), ('인기곡', 'Cheer Up!'), ('데뷰', '서바이벌 식스틴')]

词典中的有用功能 keys(), values(), items()有的。 keys() 该函数仅将键添加到字典中 列表导入它。 values() 函数只返回值 列表导入它, items() 函数具有键和值 元组 在形式上 列表(二维 列表它的形状一样!)导入它。


※ 在之前看到的语法中,存在 in 。它不仅可以用于字典,还可以用于条件语句和循环。in 的反义词是 not in。它的用法很简单: 'data in 列表, 元组, 字典, range()' 它检查数据是否存在,或者是否属于由 列表, 元组, 字典或 range() 函数创建的集合。not in 检查数据是否不存在,与 in 相反。



V. Python 函数

[SK Shillers SeSAC 宋东第一周期] 编程语言和 Python(变量、运算符、数据类型)

在上一篇文章中简要提到了函数,它们接受参数,并在执行特定操作后返回结果。 return它是一个返回值的结构。一个简单的现实世界的例子是,想象一下一台自动售卖机,当插入一枚硬币时,它会发放一杯饮料。

def func1() :
    동작 구조
def func2() :
    동작 구조
    return 값

我们以这种形式定义一个函数,它大体上是 当没有返回值时,以及当有返回值时有的。 如果存在返回值 您可以插入与特定变量对应的值,将其作为参数传递给其他函数,进行计算,或以各种方式使用这些值。 如果没有可返回的值函数在执行操作后结束,是最常见的函数。 print() 有一个函数。 print(), len(), count() 等等 Python虽然内置函数也很有用,但当您实际编写代码时, 自定义函数这导致为每个用户创建了不同的函数,从而产生了各种不同的函数行为结构。


函数可能会接受 参数(Parameter) 。它将处理和处理接收的参数数据,然后返回。

def add(x, y) :
    result = 0
    result = x + y
    return result

默认情况下,可以按照以下结构来定义:上述示例是一个执行 'add' 的函数。


※ 当您学习了函数后,就可以开始创建程序。由于代码将会非常长,我想向您提供一些关于如何构建程序的建议。'1. 函数定义部分首先出现。2. 全局变量声明部分紧随其后。3. 主程序逻辑代码部分紧随其后。'全局变量将在稍后解释,解释它们如何工作或它们是什么类型的变量,可以帮助您理解代码。您不必遵循这种结构,但如果您以后要写上百条或上千条代码,那么维护起来会非常困难,因此我建议您提前练习写注释并遵循这种结构。


我留下了最后一道任务,以便大家学习的乐趣。下面的示例是通过解决任务并思考异常和结构来编写的。正如我之前提到的,函数行为的结构非常多样,因此下面的示例并不是正确答案。希望你们能写出更好的代码!


任务: 使用函数实现计算器


















# 더하기
def add(x,y) :
	return x + y

# 빼기
def sub(x,y) :
	return x - y

# 곱하기
def multi(x,y) :
	return x * y

# 나누기
def div(x,y) :
	return x / y

# 입력
def inputNumber() :
	num = 0
	while True :
		num = input("숫자 입력 : ")
		
		if not(num.isdigit()) :
			print("숫자를 입력해주세요.")
			continue
		else :
			break

	return int(num)

# 계산입력
def inputSign() :
	sign = ''

	while True :
		sign = input("계산 입력 ( +, -, *, / ) : ")
		
		if sign not in ('+', '-', '*', '/') :
			print("제대로 된 계산을 입력해주세요.")
		else :
			break

	return sign

def control() :
	sign = inputSign()

	x = inputNumber()
	y = inputNumber()

	mark = {"+":add(x,y), "-":sub(x,y), "*":multi(x,y), "/":div(x,y)}

	result = mark[sign]

	print(f"## 계산기 : {x} {sign} {y} = {result}")

def main() :
	while True :
		print("계산기 작동")
		exit = int(input("진행1, 종료2 : "))
		
		if exit == 2 :
			break

		control()

main()


Python 在函数参数方面具有独特的特性。任何语言中,参数的数量都无关紧要,但在 Python 中,您可以为 参数指定默认值。

def add(x, y, z = 0) :
    result = 0
    result = x + y + z
    return result

print(add(4, 5))
결과 출력 ==> 9

如果原始函数有三个参数,则必须插入所有三个数据,但如果为一个变量设置默认值,如上述示例中,即使只赋值了两个数据,该函数也会正常工作。调用该函数时,"这是要执行该函数。"必须按照函数中的参数数量准确插入数据,如果逻辑(运算结构)根据参数数量而变化,则必须创建单独的函数。


※ 参数的数据类型可以是任何类型!


def func1(x, y) :
    result = x + y
    return result

def func2(x, y) :
    result1 = x + y
    result2 = x - y
    return result1, result2

sum, sub = func2()

如上例所示,Python函数的一个特点是执行特定的操作并返回多个数据,. 函数func1是一个基本的"加法"函数,而函数func2接收相同的数据,但可以执行"加法"和"减法"两种操作。当然,如果返回值不止一个,则接收变量必须相应调整。


def myFunc() :
    pass

if True :
    pass

还有一些关键字可以用在函数或条件语句中,以及在稍后将要实现的类中。'pass'表示您根据程序计划声明要实现的类或函数,并稍后定义它。将其留作注释是有用的,但根据任务或函数实现的角色分配它,同时保持整个逻辑完整也是有用的。


※ 函数也会占用内存空间。当函数返回时,函数会被终止,内存空间也会被删除。在简单的程序中,这并不是一个问题,但在大型程序中,对于良好的代码,我们应该考虑函数的作用和行为。特别是,在循环和递归函数中,有时会出现错误或程序因内存泄漏而终止。


在 函数中要学习的最后一个概念是 全局变量和 局部变量.

def func1() :
    a = 10
    print(a)

def func2() :
    print(a)

a = 20

func1()
func2()

如果你看一下上面的代码,它会以同样的方式打印变量 a。但是, func1() 在函数中定义了 a,但 func2() 该函数未定义。 在这种情况下,当调用和执行这两个函数时,变量 a 将如何显示?

func1()
출력 결과 ==> a = 10
func2()
출력 결과 ==> a = 20

结果如下: func1() 一个函数调用一个名为 a 的变量,该变量在其自身的执行结构中被声明和定义,但并未 func2() 该函数引用了变量 a,该变量被声明为全局变量。 在函数内声明和定义的变量是局部变量。以及多个功能 全局变量是可以共享的变量。也就是说。 那为什么 func1() 这个函数是否不引用全局变量 a?


答案是,局部变量优先于全局变量,因为它们首先被求值. 如前所述,函数也会分配内存空间。在分配的内存空间中,函数包含变量 a。因此,您可以直接调用本地变量,但对于func2() 函数,在您的分配内存空间中没有变量 a。但是,代码需要调用变量 a,因此它将在可引用的作用域中查找变量 a。因此,我们能够输出全局变量 a。


存在一个关键字 'global',它允许您在函数中直接引用全局变量。您还可以重新赋值为 global 导入的全局变量。

def func1() :
    global a
    a = 10
    print(a)

def func2() :
    print(a)

a = 20

func1()
출력 결과 ==> a = 10
func2()
출력 결과 ==> a = 10

上述示例与下列示例之间的区别 func1() 在函数中 global获取全局变量 重新分配这就是我所做的,这是最重要的。 global如果没有声明,它将作为局部变量进行操作,但由于声明了要将其用作全局变量,因此它被重新分配为全局变量。这一点很重要,因为对于全局变量,根据程序的功能,其他函数可以引用,并且数据可能会发生变化。 导致故障我们可以做到这一点。这就是为什么 global 在使用关键词时要小心。



评论

今天,我学习了 列表, 元组, 词典和函数。我逐渐了解了 Python,并能够通过配置代码创建各种程序(计算器、彩票等)。然而,即使我之前已经学习过这些内容,我认为对新手来说,这是一个非常困难的概念。我记得,我花了很长时间才习惯它,而且本文中没有涵盖的内容还有很多。因此,如果您正在阅读这篇文章,我建议您要记住,这很难,需要大量的学习,并不是因为您无法做到这一点!🫠 我仍然觉得自己无法正确使用它,所以如果您将这篇文章视为一个简要介绍,我会很感激的。😁