当前位置: 首页 > news >正文

【python百炼成魔】python之列表详解

文章目录

  • 一. 列表的概念
    • 1.1 列表是什么?
    • 1.2 为什么要使用列表?
    • 1.3 列表的定义
  • 二. 列表的增删改查操作
    • 2.1 列表的读取
    • 2.2 列表的切片
    • 2.3 列表的查询操作
      • 2.3.1 not in ,in 表达式
      • 2.3.2 列表元素遍历
    • 2.4 列表元素的增加操作
      • 2.4.1 append()的相关用法
      • 2.4.2 extend()方法的相关用法
      • 2.4.3 insert() 方法的使用
      • 2.4.4 用切片的方式在任意位置添加元素
    • 2.5 列表元素的删除
    • 2.6 列表元素的修改
  • 三. 列表的排序操作
    • 3.1 sort方法的排序操作
    • 3.2 使用sorted进行排序
  • 四. 列表的其他方法
    • 4.1 统计某元素在列表中出现的次数
    • 4.2 列表转换为字符串
    • 4.3 将字符串转换为列表
  • 总结

在这里插入图片描述

一. 列表的概念

1.1 列表是什么?

列表的英文单词是list, 它是python中一种可以动态添加和删除内容的数据类型,又很多个元素组成。 通俗的说就是列表就是将多个变量组合在一起的容器。

1.2 为什么要使用列表?

我们都知道变量可以存储一个元素,而列表是一个大容器,可以存储N个元素,程序可以方便的对这些元素进行操作。

在Python中一切皆为对象,所以变量存储的就是一个对象的引用。

1.3 列表的定义

列表的格式定义如下:

my_list = [元素1,元素2,元素3...]

列表中每一个数据称作元素活着项,列表用[] 包裹,每个元素用英文的,分割,列表可以直接打印输出:

my_list = ["apple", "orange", "grape", "pear"]
print(my_list)

列表中也可以是相同的元素,比如:

my_list = ["mufeng", "mufeng", "19", "19"]
print(my_list)

列表中也可以加别的类型,比如再增加个列表:

my_list = ["mufeng", "mufeng", "19", "19" ,  ["apple", "orange", "grape", "pear"]]
print(my_list)

执行结果:

在这里插入图片描述
在这里插入图片描述

二. 列表的增删改查操作

2.1 列表的读取

列表示意图:
在这里插入图片描述

这里需要学习两个名词:一个是索引,另一个是下标,这两个词是同一个意思,都是为了准确的获取列表中的元素。
列表中的索引是从0开始的,如果是倒序就从-1开始。

在上面的图表中: 索引为0的元素是 hello, 索引为1的是world, 依次类推。

案例一: 我们来看看一个列表的ID和他的类型,已经最终展示的形态

lst=['hello','world',123,96.6,"world",125,"world"]
print(id(lst))
print(type(lst))
print(lst)

在这里插入图片描述
案例二: 从案例一点列表中分别取出下标为1,2,3,4的元素以及倒数第一个和第二个

lst=['hello','world',123,96.6,"world",125,"world"]
print("索引为0的元素", lst[0])
print("索引为1的元素" ,lst[1])
print("索引为2的元素", lst[2])
print("索引为0的元素", lst[3])
print("索引为4的元素", lst[4])#倒序
## 获取最后一个元素 -1
print("列表最后一个元素", lst[-1])
print("列表倒数第二个元素" ,lst[-2])

执行结果:
在这里插入图片描述

案例三: 根据索引获取指定的元素

lst=['hello','world',19,'mufeng']
print(lst.index('hello'))
print(lst.index(19,1,4))

执行结果

0
2

这里就是根据元素hello查找索引 ,结果为0
在索引1-4里查找19的索引,结果为2

在这里插入图片描述

2.2 列表的切片

在对列表的操作中经常遇到这中操作:

  • 获取1-3项元素
  • 获取第1,3,5,7项元素
  • 获取第4-6项目元素

这些在编程中被成为切片操作。

具体的语法如下:

# 读取从索引 m 到 n-1 的列表元素
my_list[m:n]
# 读取列表的前 n 项元素
my_list[:n]
# 读取列表从 m 开始到结尾的元素
my_list[m:]
# 间隔 s,读取从 m 到 n 的列表元素
my_list[m:n:s]

案例一: 步长为正数的时候


lst=[1,2,3,4,5,6,7,8,9,]
print(lst[1:6:1]) #[2, 3, 4, 5, 6]

lst[1:6:1] 表示: 从索引1开始到索引6结束,步长为1,一般默认步长为1

案例二:步长为正数其他写法:

步长如果省略不写,则默认为1


lst=[1,2,3,4,5,6,7,8,9,]
print(lst[1:6:1]) #[2, 3, 4, 5, 6]
print(lst[1:6])
print(lst[1:6:])
print(lst[1:6:2])
print(lst[:6:2])

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

案例三: 步长为负数的情况


lst=[1,2,3,4,5,6,7,8,9,]
print(lst[::-1])

这种情况相当于取反结果为:

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

也这可以这么写:


lst=[1,2,3,4,5,6,7,8,9,]
print(lst[8::-1]) #[9, 8, 7, 6, 5, 4, 3, 2, 1]

2.3 列表的查询操作

2.3.1 not in ,in 表达式

判断指定元素是否在列表中存在

  • 元素in 列表名
  • 元素 not in 列表名
lst=[1,2,3,4,5,6,7,8,9,]
print(2 not in lst)

2.3.2 列表元素遍历

元素遍历也是查询过程中的一种,先遍历出来在最遍历出来的内容做操作。

语法:

for 可迭代变量 in 列表

lst=[1,2,3,4,5,6,7,8,9,]
for item in lst:print(item)

2.4 列表元素的增加操作

列表元素的增加操作有以下几个函数:
append() 在列表末尾加一个元素
extend() 在列表末尾添加一个元素
insert() 在列表的任意位置添加一个元素
切片: 在列表的任意位置添加一个元素

2.4.1 append()的相关用法

案例一: 使用append()函数在列表末尾加上一个元素:

lst=[1,2,3]
print("添加元素之前",lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))

执行结果:
在这里插入图片描述

可以看到,ID是相同的,也就是没有生成新的列表

案例二: 使用append()方法 追加一个列表

lst=[1,2,3]
print("添加元素之前",lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))lst2=['hello','world']
lst.append(lst2)
print(lst)

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

这里可以看到,append可以将列表 lst2作为一个元素添加到末尾

2.4.2 extend()方法的相关用法

extend() 是扩展到意思,我们来看案例:


lst=[1,2,3]
lst2=['hello','world']
print(lst)
lst.extend(lst2)
print(lst)

执行结果:
在这里插入图片描述
这里可以发现,我们用extend追加列表,是把列表的内容写到原来的lst中了,并不是把LST2作为一个整体插入的。

append 方法可以给列表追加元素,而extend可以给列表追加一个列表,相当于将两个列表进行连接。

2.4.3 insert() 方法的使用

上面我们学习过的append是在列表的末尾固定插入元素,而insert 是在任意位置插入,语法如下:

my_list.insert(索引位置,"新增元素")

案例一: 我们尝试在索引2的位置,插入90


lst=[1,2,3]
lst.insert(2,90)
print(lst)

在这里插入图片描述
执行结果:

[1, 2, 90, 3]

2.4.4 用切片的方式在任意位置添加元素

切片也可以在任意位置添加元素,比如lst[2:] 表示把索引为2,且包括索引2后面的内容切掉


lst=[1,2,3,4]
lst3=['hello','world','沐风晓月']
lst[2:]=lst3
print(lst)

在这里插入图片描述

可以看到,它把索引2后面的都切掉了,然后把lst3添加到lst里了

切片实际上就是切掉一部分,用新的替换

在这里插入图片描述

2.5 列表元素的删除

列表元素的删除也有多个方法,如下:

  • remove() 一次删除一个元素,重复元素只删除第一个,元素不存在抛出valueerror

  • pop() 删除一个指定索引位置上的元素

  • 切片: 一次至少删除一个元素(切片会产生一个新的列表对象)

  • clear() 清空列表

  • del() 删除列表

案例一: 删除索引为2的元素

lst=[1,2,3,4]
lst.pop(2)
print(lst) #[1, 2, 4]

案例二: 不指定索引默认删除最后一个元素


lst=[1,2,3,4]#pop() 不指定索引删除最后一个
lst.pop()
print(lst)#[1, 2, 3]

案例三: 直接删除指定的元素 remove()
pop方法需要按照索引删除的元素,而remove直接可以指定元素,但remove删除元素后,不会返回被删除的元素,另外当列表中不存在被删除的元素,会提示代码错误。

如果被删除的元素有重名的情况,默认删除第一个

语法格式为:

my_list.remove(待删除元素内容)
lst=[1,2,3,4]
lst3=['hello','world','沐风晓月']lst3.remove("hello")

执行结果:
在这里插入图片描述

这里不会返回任何结果,不像pop方法,还会显示被删除后的列表:

案例四: 清空列表 clear()方法

清空后,还存在列表,但是删除后就没有了,删除列表用del list


lst=[1,2,3,4]#clear() 清空列表
lst.clear()
print(lst)

删除列表


lst=[1,2,3,4]del lstprint(lst)

删除后就没有了,打印会提示没有定义

在这里插入图片描述

2.6 列表元素的修改

列表元素的修改:

  • 为指定索引元素赋新值
  • 为指定的切片赋予一个新值
lst=[1,2,3,4]#一次修改一个值
lst[2]=100
print(lst)#[1, 2, 100, 4]

使用切片来替换


lst=[1,2,3,4]lst[1:3]=[30,40,50,60]
print(lst)

在这里插入图片描述
这个就是把2和3去掉,然后用30,40,50,60 代替

如果你已经看到了这里,那你:

在这里插入图片描述

三. 列表的排序操作

除了对列表增删改查外还会涉及到排序等相关的操作,使用固定的方法即可。
两种方法:

  1. 调用sort()方法,列表中所有的元素默认按照从小到大的顺序来排序,可以指定reverse=True 进行降序排序
  2. 调用内置函数 sorted() ,可以指定reverse=True进行降序排序,原列表不发生改变。此方法会产生一个新的列表对象

3.1 sort方法的排序操作

默认从小到大,也可以修改为从大到小,该方法一般用于纯数字或者纯英文字符的列表排序。

语法格式:
my_list.sort()

案例一: 声明一个包含数字的列表进行排序


lst=[1,2,3,4,88,77,5,46]
print('排序前的列表',lst)
lst.sort()
print('排序后的列表',lst)
lst.sort(reverse=True)
print('降序排序',lst)

在这里插入图片描述

3.2 使用sorted进行排序

sort排序会对源列表进行永久修改,很多时间并不需要修改原列表,这种情况下就可以借助于sorted函数。 需要注意的是 sorted是一个内置函数,并不是列表的方法,也就是sorted可以对很多种类的对象进行排序。

语法:

sorted(待排序列表) # 正序,从小到大
sorted(待排序列表,reverse=True) # 逆序,从大到小

案例一: 定义一个list列表并进行排序

lst=[1,2,3,4,88,77,5,46]
print('排序前的列表',lst)
newlst=sorted(lst)
print(lst)
print(newlst)

两个区别就是: sort()是对原列表进行操作,sorted()是生成新列表,生成的新列表需要用新变量接收。

四. 列表的其他方法

4.1 统计某元素在列表中出现的次数

通过count方法可以获取元素在列表中出现的次数:

次数 = my_list.count(待查找值)

案例: 查找3在列表中出现的次数

my_list = [3, 4, 3, 2, 3, 8, 7]
nums = my_list.count(3)print(nums)

4.2 列表转换为字符串

通过john方法可以将所有的元素组合成一个字符串,语法如下:

连接字符串.join(待转换列表)
my_list = ["pear", "apple", "orange"]
my_str = "#".join(my_list)print(my_str)

执行结果:
在这里插入图片描述

4.3 将字符串转换为列表

通过内置函数 list,可以将字符串转换成列表,类似于强制转换:

my_str = "abcdefghi"
print(list(my_str))

结果如下:

在这里插入图片描述
字符串也有自己的方法,我们给他变成列表就可以使用列表的方法。对于列表的方法比较多,需要反复练习。

在这里插入图片描述

总结

原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{green}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{green}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{green}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!

相关文章:

【python百炼成魔】python之列表详解

文章目录一. 列表的概念1.1 列表是什么?1.2 为什么要使用列表?1.3 列表的定义二. 列表的增删改查操作2.1 列表的读取2.2 列表的切片2.3 列表的查询操作2.3.1 not in ,in 表达式2.3.2 列表元素遍历2.4 列表元素的增加操作2.4.1 append()的相关用法2.4.2 e…...

如何学习 Web3

在本文中,我将总结您可以采取的步骤来学习 Web3。从哪儿开始?当我们想要开始新事物时,我们需要一些指导,以免在一开始就卡住。但我们都是不同的,我们有不同的学习方式。这篇文章基于我学习 Web3 的非常个人的经验。路线…...

大数据框架之Hadoop:MapReduce(一)MapReduce概述

1.1MapReduce定义 MapReduce是一个分布式计算框架,用于编写批处理应用程序,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一…...

一文搞定python语法进阶

前言前面我们已经学习了Python的基础语法,了解了Python的分支结构,也就是选择结构、循环结构以及函数这些具体的框架,还学习了列表、元组、字典、字符串这些Python中特有的数据结构,还用这些语法完成了一个简单的名片管理系统。下…...

2019蓝桥杯真题数列求值(填空题) C语言/C++

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 给定数列 1,1,1,3,5,9,17,⋯,从第 4 项开始,每项都是前 3 项的和。 求第 20190324 项的最后 4 位数字。 运行限制 最大运行时间&#xff1a…...

spring中@Autowire和@Resource的区别在哪里?

介绍今天使用Idea写代码的时候,看到之前的项目中显示有warning的提示,去看了下,是如下代码?Autowire private JdbcTemplate jdbcTemplate;提示的警告信息Field injection is not recommended Inspection info: Spring Team recommends: &quo…...

算法训练营DAY54|583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 - 力扣(LeetCode)https://leetcode.cn/problems/delete-operation-for-two-strings/这道题也是对于编辑距离的铺垫题目,是可以操作两个字符串的删除,使得两个字符串的字符完全相同,这道题可…...

【Ctfshow_Web】信息收集和爆破

0x00 信息收集 web1 直接查看源码 web2 查看不了源码,抓包即可看到(JS拦截了F12) web3 抓包,发送repeater,在响应包中有Flag字段 web4 题目提示后台地址在robots,访问/robots.txt看到Disallow: /fl…...

基于机器学习的推荐算法研究与实现

摘要随着互联网的普及,人们可以通过搜索引擎、社交网络等方式获取大量的信息资源。但是,面对如此之多的信息,人们往往会感到迷失和困惑,无法快速准确地找到自己需要的信息。在这种情况下,推荐算法的出现为我们提供了一…...

(二十四)ATP应用测试平台——springboot集成fastdfs上传与下载功能

前言 本节内容我们主要介绍一下如何在springboot项目中集成fastdfs组件,实现文件的上传与下载。关于fastdfs服务中间键的安装过程,本节内容不做介绍。fastdfs是一个轻量级的分布式文件系统,也是我们文件存储中常常使用的组件之一&#xff0c…...

linux好用命令+vs快捷键

linux好用命令 功能指令跳转到vim界面的最后一行shift键g复制当前路径下所有文件和目录(加-r才行)到target目录cp -r * /home/target删除指定文件rm -rf test.txt文件重命名(-i交互式提示)mv -i file1 file2移动某个内容&#xf…...

Git 构建分布式版本控制系统

版本控制概念Gitlab部署1.版本控制概念 1.1分类 (一)1 本地版本控制系统(传统模式) (二)2 集中化的版本控制系统 CVS、Subversion(SVN) (三)3 分布式…...

Day891.一主多从的切换正确性 -MySQL实战

一主多从的切换正确性 Hi,我是阿昌,今天学习记录的是关于一主多从的切换正确性的内容。 在切换任务的时候,要先主动跳过这些错误,通过主动跳过一个事务或者直接设置跳过指定的错误,用GTID解决找同步位点的问题 大多…...

【论文笔记】图像修复Learning Joint Spatial-Temporal Transformations for Video Inpainting

论文地址:https://arxiv.org/abs/2007.10247 源码地址:GitHub - researchmm/STTN: [ECCV2020] STTN: Learning Joint Spatial-Temporal Transformations for Video Inpainting 一、项目介绍 当下SITA的方法大多采用注意模型,通过搜索参考帧…...

代码随想录算法训练营第二天 | 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II、总结

打卡第二天,认真做了两道题目,顶不住了好困,明天早上练完车回来再重新看看。 今日任务 第一章数组 977.有序数组的平方209.长度最小的子数组59.螺旋矩阵II 977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每…...

Python pickle模块:实现Python对象的持久化存储

Python 中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。值得一提的是,pickle 是 python 语言的一个标准模…...

【C++】C/C++内存管理

文章目录1. C/C内存分布2. C语言当中的动态内存管理3. C 内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型4. operator new 和operator delete 函数5. new和delete的实现原理5.1 内置类型5.2 自定义类型6. 定位new表达式(placement-new)7. 常见面试题7.1 …...

【测试】自动化测试02

努力经营当下,直至未来明朗! 文章目录前言 回顾 预告一、常见的元素操作1. 输入文本sendKeys()2. 点击click3. 提交submit(通过回车键提交)4. 清除clear5. 获取文本getText()6. 获取属性对应的值getAttribute()7. 查看title和ur…...

Python空间分析| 02 利用Python计算空间局部自相关(LISA)

局部空间自相关 import esda import numpy as np import pandas as pd import libpysal as lps import geopandas as gpd import contextily as ctx import matplotlib.pyplot as plt from geopandas import GeoDataFrame from shapely.geometry import Point from pylab im…...

idea快捷编码:生成for循环、主函数、判空非空、生成单例方法、输出;自定义快捷表达式

前言 idea可根据输入的简单表达式进行识别,快速生成语句 常用的快捷编码:生成for循环、主函数、判空非空、生成单例方法、输出 自定义快捷表达式 博客地址:芒果橙的个人博客 【http://mangocheng.com】 一、idea默认的快捷表达式查看 Editor…...

【Spring】@Value注入配置文件 application.yml 中的值失败怎么办

本期目录一、 问题背景二、 问题原因三、 解决方法一、 问题背景 今天碰到的问题是用 Value 注解无法注入配置文件 application.yml 中的配置值。 检查过该类已经交给 Spring 容器管理了,即已经在类上加了 Configuration 和 ConfigurationProperties(prefix &quo…...

CleanMyMac清理工具软件功能优势介绍

CleanMyMac更新最新版本x4.12,完美适配新版系统macOS10.14,拥有全新的界面。CleanMyMac可以让您安全、智能地扫描和清理整个系统,删除大型未使用的文件,减少iPod库的大小,最精确的应用程序卸载,卸载不必要的…...

【面试题】对JS中的事件冒泡、事件捕获、事件委托的理解

大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。Dom标准事件流的触发的先…...

SAP 理解合并会计报表

随着企业集团的发展,集团内部会出现越来越多的公司;复杂的公司结构和复杂的集团内业务,使得集团内部管理困难重重,信息渠道严重失灵。除了内部管理的需要,企业还有义务向相关方提供详细的和及时的信息。ERP中的合并会计…...

Ubuntu 命令常用命令——定时启动程序

crontab -e 语法 crontab[ -u user ] file或 crontab[ -u user ] { -l | -r | -e }说明: crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。 -U Lser 是指设定指定user的时程表,这个前提是你必…...

笔试题(十三):走迷宫

# 描述 # 定义一个二维数组 N*M ,如 5 5 数组下所示: # int maze[5][5] { # 0, 1, 0, 0, 0, # 0, 1, 1, 1, 0, # 0, 0, 0, 0, 0, # 0, 1, 1, 1, 0, # 0, 0, 0, 1, 0,}; # 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路&#…...

Gradle相关的知识学习

这里有一套博客文章写的比较通俗易懂:https://www.jianshu.com/p/8e1ddd19083a...

SpringMVC的工作原理

SpringMVC的工作原理流程图 SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截…...

问卷数据分析流程

文章目录一、数据合并1. 读取数据2. 数据预览二、数据清洗1. 检验ID是否重复,剔除ID重复项2. 剔除填写时间小于xx分钟的值3.处理 量表题 一直选一个选项的问题三、数据清洗1.1 将问卷单选题的选项code解码,还原成原来的选项1.2 自动获取单选题旧的选项列…...

【观察】Solidigm P44 Pro SSD评测:原厂品质+软硬兼施=性能怪兽

众所周知,目前SSD(固态硬盘)已取代HDD(机械硬盘)成为电脑中常见的存储设备,特别是在技术创新的持续推动下,如今SSD的速度和效率都在不断地提高,从SATA2 3GB发展到SATA3 6GB&#xff…...

网站怎么做的支付宝接口/网络营销专业是干什么的

文|曾响铃 来源|科技向令说(xiangling0815) 元旦已过,眼看农历新年马上来临,又到了一年一度“囤货”的季节。有一类产品的“热度”从2019年春节期间,一直延续至今,那就是水果。 在2019年春节期间&#x…...

jsp做网站的优点/营销策略有哪些有效手段

一,在字符串中的使用 //当在字符串前面加上一个字符的时候,我们就可以把一个字符串定义在多行// 编译器不会再去识别字符串中的转义字符// 如果需要在字符串中表示一个双引号的话,需要使用两个双引号string str1 "Hellow World!&quo…...

广告平台源码/seo可以从哪些方面优化

PyInstaller的原理简介PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运…...

建设银行手机不用了怎么登陆网站/国外搜索引擎

关于系统提示Error loading MIDAS.DLL解决 由于客户电脑故障,动态链接库不能正常加载导致不能正常安装远程系统. 为方便业务员自行修复,特制作本工具,请按以下步骤操作. 注意:部分电脑故障可能导致双击不出现登陆窗口,请重起电脑后操作. 步骤一:安装目录下面的“MIDAS.DLL”文件…...

潮流印花图案设计网站/seo综合查询是什么意思

Hibernate Validator是用来做什么的? JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,用于对 Java Bean 中的字段的值进行验证。Hibernate Validator则是Hibdernate提供的一种对该规范的实现。 ——即Hibernate Validator是用来…...

橘子seo/沈阳网站推广优化

aidl(Android Interface Definition Language) 进程间通信需求场景:1.两个不同的应用程序之间通讯需要2.复用以前app已有的功能实现原理:1.IPC在这之前我们先简单说一下IPC,IPC是Inter-Process Communication的缩写,是进程间通信或者跨进程通…...