Python基础知识

简介: Python基础知识

一、赋值、浅拷贝、深拷贝的区别?


1、赋值:就是创建了对象的一个新的引用,修改其中任意一个变量都会影响另一个,他们共用一个地址。即赋值之后没有额外的内存开销。


# 当我们使用is判断的时候,返回为True
a = [1,2,3]
b=a
a is b
# 输出为True
# 当然我们也可以使用id()函数来查看,看两个变量的地址是否相同。


2、浅拷贝:会创建新的对象,其内容非原对象本身的引用,而是原对象内第一层对象的引用。

a = [1, 2, 3]
# 几种形式
# 切片操作
b = a[:] 
# 或者
b = [x for x in a]
# 工厂函数
b = list(a)
# copy函数
import copy
b = copy.copy(a)


注意:浅拷贝产生的列表b不再是列表a了,用is判断可以发现他们不是同一个对象,用id查看他们也不指向同一片内存空间,但是我们使用for循环查看内部元素地址的时候,可以看到二者包含的元素的地址是相同的。

对于内部元素是列表:修改第一层的元素,他们不会互相影响,但是修改第二层元素以及之后的,会互相影响。[1,[2, 3], [4, 5]] 这里1指的是第一层元素,2、3指的是第二层元素。

对于内部元素是元组 :元组是不可变元素,修改了元组之后,指向了新的地址,所以不会互相影响。


3、深拷贝:只有一种形式,即copy.deepcopy()函数,拷贝了对象的所有元素,包含多嵌套的元素,这样修改列表b根本不会影响列表a,即深拷贝拷贝出来的对象是一个全新的对象,与原来的对象没有任何的联系。避免了浅拷贝的问题。

import copy
a = [1, 2, 3]
b = copy.deepcopy(a)
id(a) # 1668072346632
id(b) # 1668072346824
a is b # False


总结:可以看到,深拷贝的两个变量的id完全不相同。


二、什么是lambda函数?有什么好处?


匿名函数: 可以理解为函数的简写形式。

基本形式: lambda 变量:函数体

常用用法: 在参数列表中最适合使用匿名函数,尤其时与key = 搭配。

# lambda后接参数,在调用匿名函数的时候需要传入
# 冒号右边是函数的返回值
add = lambda x, y: x+y
add(1, 2)
# 等价于
def add(x, y):
  return x+y
# lambda函数也可以作为其他函数的实际参数使用。
# 按照特定条件排序,与key = 搭配。
ls = [(21,31), (22,51)]
temp = sorted(ls, key=lambda x: x[0]+x[1])


相关文章
|
4月前
|
消息中间件 分布式计算 监控
Python面试:消息队列(RabbitMQ、Kafka)基础知识与应用
【4月更文挑战第18天】本文探讨了Python面试中RabbitMQ与Kafka的常见问题和易错点,包括两者的基础概念、特性对比、Python客户端使用、消息队列应用场景及消息可靠性保证。重点讲解了消息丢失与重复的避免策略,并提供了实战代码示例,帮助读者提升在分布式系统中使用消息队列的能力。
122 2
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析入门:基础知识与必备工具
【4月更文挑战第12天】Python是大数据时代数据分析的热门语言,以其简单易学和丰富库资源备受青睐。本文介绍了Python数据分析基础,包括Python语言特点、数据分析概念及其优势。重点讲解了NumPy、Pandas、Matplotlib、Seaborn和Scikit-learn等必备工具,它们分别用于数值计算、数据处理、可视化和机器学习。此外,还概述了数据分析基本流程,从数据获取到结果展示。掌握这些知识和工具,有助于初学者快速入门Python数据分析。
92 2
|
3月前
|
设计模式 开发者 Python
探索Python中的异步编程:从基础知识到实践应用
【6月更文挑战第6天】本文旨在深入探讨Python中的异步编程概念,包括其背后的原理、常用的库和框架以及如何在实际项目中应用这些知识。文章将通过具体的代码示例和场景分析,帮助读者理解异步编程在提升程序性能和处理并发任务中的重要性。
|
2月前
|
存储 人工智能 数据挖掘
十分钟学习Python基础知识
Python是一种高效、易学且功能强大的编程语言,广泛应用于数据分析、人工智能、Web开发等领域。如果你是编程新手,想要快速入门Python,那么这篇文章将是你的最佳选择。我将在十分钟内带你了解Python的基础知识。
|
3月前
|
索引 Python
Python考试基础知识
Python考试基础知识
22 1
|
3月前
|
关系型数据库 MySQL 数据库
探索Python中的异步编程:从基础知识到高级应用
【6月更文挑战第8天】随着技术的进步,异步编程已经成为现代软件开发中不可或缺的一部分。本文将深入探讨Python中的异步编程,包括其基础知识、常用库和框架,以及一些高级应用。我们将通过实例来展示如何有效地使用异步编程来提高程序的性能和响应性。无论你是初学者还是经验丰富的开发者,这篇文章都会为你提供有价值的见解和技巧。
41 2
|
3月前
|
存储 关系型数据库 API
探索Python中的异步编程:从基础知识到实际应用
【6月更文挑战第6天】在本文中,我们将深入探讨Python中的异步编程,这是一种强大的编程技术,可以帮助我们更有效地处理并发任务。我们将从基础知识开始,然后逐步深入到实际应用,包括异步I/O操作、异步Web请求和异步数据库操作等。最后,我们将通过一个实际的项目案例,展示如何在Python中使用异步编程来提高程序的性能和效率。
|
3月前
|
JavaScript 前端开发 Java
python的入门基础知识和一些小技巧
python的入门基础知识和一些小技巧
21 0
|
3月前
|
算法 Python
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
|
4月前
|
Java 程序员 Python
Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
【4月更文挑战第15天】Python基础知识主要包括其**语法规则、数据类型、控制结构以及函数和模块**等
46 11