热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

公共操作与表达式推导

本文探讨了公共操作在数学表达式推导中的应用,分析了其在简化复杂公式和提高计算效率方面的关键作用。通过具体实例,展示了如何利用公共操作优化表达式的结构,为相关领域的研究提供了新的视角和方法。

                                                                                                                                                      公共操作

⼀. 运算符






























运算符描述⽀持的容器类型
  +合并字符串、列表、元组
  *复制字符串、列表、元组
  in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典

 

 

 

 

 

 

1.1 +

 

# 1. 字符串
str1
= 'aa'
str2
= 'bb'
str3
= str1 + str2
print(str3) # aabb
#
2. 列表
list1
= [1, 2]
list2
= [10, 20]
list3
= list1 + list2
print(list3) # [
1, 2, 10, 20]
#
3. 元组
t1
= (1, 2)
t2
= (10, 20)
t3
= t1 + t2
print(t3) # (
10, 20, 100, 200)

 

具体示例如下:

 

 

1.2 *

 

# 1. 字符串
print(
'-' * 10) # ----------
#
2. 列表
list1
= ['hello']
print(list1
* 4) # ['hello', 'hello', 'hello', 'hello']
#
3. 元组
t1
= ('wushen',)
print(t1
* 4) # ('wushen', 'wushen', 'wushen', 'wushen')

 

具体示例如下:

 

 

1.3 in或not in

 

# 1. 字符串
print(
'a' in 'abcd') # True
print(
'a' not in 'abcd') # False
#
2. 列表
list1
= ['a', 'b', 'c', 'd']
print(
'a' in list1) # True
print(
'a' not in list1) # False
#
3. 元组
t1
= ('a', 'b', 'c', 'd')
print(
'aa' in t1) # False
print(
'aa' not in t1) # True

 

具体示例如下:

 

 

 

⼆. 公共⽅法

































函数描述
len()计算容器中元素个数
del 或 del()删除
max()返回容器中元素最⼤值
min()返回容器中元素最⼩值
range(start, end, step)⽣成从start到end的数字,步⻓为 step,供for循环使⽤
enumerate()函数⽤于将⼀个可遍历的数据对象(如列表、元组或字符串)组合为⼀个索引序 列,同时列出数据和数据下标,⼀般⽤在 for 循环当中。

 

 

 

 

 

 

 

 

 

2.1 len()

 

# 1. 字符串
str1
= 'abcdefg'
print(len(str1)) #
7
#
2. 列表
list1
= [10, 20, 30, 40]
print(len(list1)) #
4
#
3. 元组
t1
= (10, 20, 30, 40, 50)
print(len(t1)) #
5
#
4. 集合
s1
= {10, 20, 30}
print(len(s1)) #
3
#
5. 字典
dict1
= {'name': 'wushen', 'age': 19}
print(len(dict1)) #
2

 

具体示例如下:

 

 

2.2 del()

list1 = [10, 20, 30, 40]
del(list1[
0])
print(list1) # [
20, 30, 40]

 

具体示例如下:

 

 

2.3 max()

# 1. 字符串
str1
= 'abcdefg'
print(max(str1)) # g
#
2. 列表
list1
= [10, 20, 30, 40]
print(max(list1)) #
40

具体示例如下:

 

 

2.4 min()

 

# 1. 字符串
str1
= 'abcdefg'
print(min(str1)) # a
#
2. 列表
list1
= [10, 20, 30, 40]
print(min(list1)) #
10

 

具体示例如下:

 

 

2.5 range()

 

# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, 1):
print(i)
#
1 3 5 7 9
for i in range(1, 10, 2):
print(i)
#
0 1 2 3 4 5 6 7 8 9
for i in range(10):
print(i)

 

具体示例如下:

 

注意:range()⽣成的序列不包含end数字。

 

2.6 enumerate()

•语法

 

enumerate(可遍历对象, start=0)

 

注意:start参数⽤来设置遍历数据的下标的起始值,默认为0。

 

 

 

 

• 快速体验

list1 = ['a', 'b', 'c', 'd', 'e']
for i in enumerate(list1):
print(i)
for index, char in enumerate(list1, start=1):
print(f
'下标是{index}, 对应的字符是{char}')

具体示例如下:

 

 

 

三. 容器类型转换

3.1 tuple()

作⽤:将某个序列转换成元组

list1 = [10, 20, 30, 40, 50, 20]
s1
= {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))

 

具体示例如下:

 

 

 

3.2 list()

作⽤:将某个序列转换成列表

 

t1 = ('a', 'b', 'c', 'd', 'e')
s1
= {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))

 

具体示例如下:

 

 

3.3 set()

作⽤:将某个序列转换成集合

 

list1 = [10, 20, 30, 40, 50, 20]
t1
= ('a', 'b', 'c', 'd', 'e')
print(
set(list1))
print(
set(t1))

 

具体示例如下:

 

 注意:

1. 集合可以快速完成列表去重

2. 集合不⽀持下标

 

                                                                                                                                                                           推导式

⼀. 列表推导式

 作⽤:⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。

 列表推导式⼜叫列表⽣成式。

1.1 快速体验

需求:创建⼀个0-10的列表。

•while循环实现

# 1. 准备⼀个空列表
list1
= []
#
2. 书写循环,依次追加数字到空列表list1中
i
= 0
while i <10:
list1.append(i)
i
+= 1
print(list1)

 具体示例如下:

 

•for循环实现

 

list1 = []
for i in range(10):
list1.append(i)
print(list1)

 

具体示例如下:

 

 

•列表推导式实现

list1 = [i for i in range(10)]
print(list1)

具体示例如下:

 

 

1.2 带if的列表推导式

需求:创建0-10的偶数列表

•⽅法⼀:range()步⻓实现

 

list1 = [i for i in range(0, 10, 2)]
print(list1)

 

具体示例如下:

 

 

•⽅法⼆:if实现

list1 = [i for i in range(10) if i % 2 == 0]
print(list1)

具体示例如下:

 

 1.3 多个for循环实现列表推导式

需求:创建列表如下:

 

[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

 

代码如下:

list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)

具体示例如下:

 

 

⼆. 字典推导式

思考:如果有如下两个列表:

 

list1 = ['name', 'age', 'gender']
list2
= ['wushen, 19, 'man']

 

如何快速合并为⼀个字典?

字典推导式

字典推导式作⽤:快速合并列表为字典或提取字典中⽬标数据。

 

2.1 快速体验

1. 创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅。

 

dict1 = {i: i**2 for i in range(1, 5)}
print(dict1) # {
1: 1, 2: 4, 3: 9, 4: 16}

 

具体示例如下:

 

 

2. 将两个列表合并为⼀个字典

list1 = ['name', 'age', 'gender']
list2
= ['wushen', 19, 'man']
dict1
= {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)

具体示例如下:

 

 

3. 提取字典中⽬标数据

counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求:提取上述电脑数量⼤于等于200的字典数据
count1
= {key: value for key, value in counts.items() if value >= 200}
print(count1) # {
'MBP': 268, 'DELL': 201}

具体示例如下:

 

 

三. 集合推导式

需求:创建⼀个集合,数据为下⽅列表的2次⽅。

 

list1 = [1, 1, 2]

 

代码如下:

list1 = [1, 1, 2]
set1
= {i ** 2 for i in list1}
print(set1) # {
1, 4}

具体示例如下:

 

 

 

注意:集合有数据去重功能。

 



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细探讨了Netty中Future及其子类的设计与实现,包括其在并发编程中的作用和具体应用场景。我们将介绍Future的继承体系、关键方法的实现细节,并讨论如何通过监听器和回调机制来处理异步任务的结果。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
author-avatar
I汽车I生活
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有