已知alist=['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif'], 编写函数,使得该函数接收参数alist后得到的返回值为['2017', '2020', '2020']

时间: 2023-08-06 07:16:48 浏览: 44
可以通过字符串的切片操作和列表推导式来实现: ```python def get_years(alist): years = [filename.split("_")[1][:4] for filename in alist] return years ``` 在这个函数中,我们首先使用了列表推导式,循环遍历了`alist`中的每一个元素`filename`,然后使用字符串的`split()`方法将文件名拆分成一个列表,其中第二个元素就是日期,我们再使用切片操作获取该日期的前四个字符(即年份),最后将所有年份组成的列表返回即可。 使用该函数可以得到如下结果: ```python >>> alist = ['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif'] >>> get_years(alist) ['2017', '2020', '2020'] ```
相关问题

5.已知alist=[ jn_20170525_22.tif , jn_20200424_1.tif , jn_20200424_2.tif ], 编写函数,使得该函数接收参数alist后得到的返回值为[ 2017 , 2020 , 2020 ]

可以使用正则表达式来提取年份信息,具体实现如下: ```python import re def extract_year(alist): pattern = r"\d{4}" years = [] for filename in alist: year_match = re.search(pattern, filename) if year_match: year = int(year_match.group()) years.append(year) return years ``` 这个函数首先定义了一个正则表达式模式,用于匹配文件名中的年份信息。然后遍历传入的文件名列表,对于每个文件名,使用 `re.search()` 函数来查找匹配的年份信息,如果找到了就将其转换为整数并添加到年份列表中。最后返回年份列表即可。

5.已知alist=['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif'], 编写函数,使得该函数接收参数alist后得到的返回值为['2017', '2020', '2020']

可以使用正则表达式来匹配列表中的每个字符串,提取出其中的年份。具体实现如下: ```python import re def extract_year(alist): pattern = re.compile(r'\d{4}') # 匹配四位数字 year_list = [] for s in alist: match = pattern.search(s) if match: year_list.append(match.group()) # 将匹配到的年份加入列表中 return year_list ``` 使用示例: ```python alist = ['jn_20170525_22.tif', 'jn_20200424_1.tif', 'jn_20200424_2.tif'] year_list = extract_year(alist) print(year_list) # 输出 ['2017', '2020', '2020'] ```

相关推荐

class SpiralIterator: def init(self, source, x=810, y=500, length=None): self.source = source self.row = np.shape(self.source)[0]#第一个元素是行数 self.col = np.shape(self.source)[1]#第二个元素是列数 if length: self.length = min(length, np.size(self.source)) else: self.length = np.size(self.source) if x: self.x = x else: self.x = self.row // 2 if y: self.y = y else: self.y = self.col // 2 self.i = self.x self.j = self.y self.iteSize = 0 geo_transform = dsm_data.GetGeoTransform() self.x_origin = geo_transform[0] self.y_origin = geo_transform[3] self.pixel_width = geo_transform[1] self.pixel_height = geo_transform[5] def hasNext(self): return self.iteSize < self.length # 不能取更多值了 def get(self): if self.hasNext(): # 还能再取一个值 # 先记录当前坐标的值 —— 准备返回 i = self.i j = self.j val = self.source[i][j] # 计算下一个值的坐标 relI = self.i - self.x # 相对坐标 relJ = self.j - self.y # 相对坐标 if relJ > 0 and abs(relI) < relJ: self.i -= 1 # 上 elif relI < 0 and relJ > relI: self.j -= 1 # 左 elif relJ < 0 and abs(relJ) > relI: self.i += 1 # 下 elif relI >= 0 and relI >= relJ: self.j += 1 # 右 #判断索引是否在矩阵内 x = self.x_origin + (j + 0.5) * self.pixel_width y = self.y_origin + (i + 0.5) * self.pixel_height z = val self.iteSize += 1 return x, y, z dsm_path = 'C:\sanwei\jianmo\Productions\Production_2\Production_2_DSM_part_2_2.tif' dsm_data = gdal.Open(dsm_path) dsm_array = dsm_data.ReadAsArray() spiral_iterator = SpiralIterator(dsm_array,x=810,y=500) while spiral_iterator.hasNext(): x, y, z = spiral_iterator.get() print(f'Value at ({x},{y}):{z}')这段代码怎么改可以利用共线方程将地面点坐标反算其在原始航片的像素坐标

最新推荐

recommend-type

M_Map 用户指南(中文版).pdf

1. **入门**:首先,你需要下载并解压 M_Map 的文件,然后确保它位于 MATLAB 的搜索路径中。你可以通过 `cd` 切换到正确目录或使用 `addpath` 添加路径。运行 `m_proj`, `m_coast` 和 `m_grid` 函数可以创建一个基础...
recommend-type

Xilinx_Answer_65444_Windows.pdf

13. 技术支持与更新:Xilinx的技术支持网站提供了最新的Answer Record,用户应定期检查以获取驱动和软件的更新,以解决已知问题或获取新特性。 总结来说,Xilinx Answer 65444文档详细介绍了如何在Windows平台上...
recommend-type

计算机组成原理_秦磊华_试卷及参考答案.doc

1. 若[x]补=11101100(单符号位),则[x /2]补=11101000,[x]补的模为28。 2. 动态存储器的刷新是按行进行;若存储单体的容量为 64K,采用双译码且地址线平均送到两个译码器中,则刷新地址计数器的模为28。 3. 设...
recommend-type

va_list(),va_start(),va_arg(),va_end() 详细解析

例如,`va_start(arg_ptr, i)`,这里的 `i` 是最后一个已知的参数,`arg_ptr` 是用于存储可变参数列表指针的变量。`va_start` 会将 `arg_ptr` 设置为第一个可变参数在堆栈上的地址。 2. `va_arg` 宏: 这个宏用于...
recommend-type

mtk_编译原理.docmtk_编译原理.doc

1. **编译目的**: 编译的主要目的是理解和掌握MTK平台的编译流程,以便快速解决编译过程中遇到的问题,并为未来的编译优化提供指导。 2. **简介**: MTK的编译过程主要在Windows命令行环境下进行,通过Makefile...
recommend-type

计算机基础知识试题与解答

"计算机基础知识试题及答案-(1).doc" 这篇文档包含了计算机基础知识的多项选择题,涵盖了计算机历史、操作系统、计算机分类、电子器件、计算机系统组成、软件类型、计算机语言、运算速度度量单位、数据存储单位、进制转换以及输入/输出设备等多个方面。 1. 世界上第一台电子数字计算机名为ENIAC(电子数字积分计算器),这是计算机发展史上的一个重要里程碑。 2. 操作系统的作用是控制和管理系统资源的使用,它负责管理计算机硬件和软件资源,提供用户界面,使用户能够高效地使用计算机。 3. 个人计算机(PC)属于微型计算机类别,适合个人使用,具有较高的性价比和灵活性。 4. 当前制造计算机普遍采用的电子器件是超大规模集成电路(VLSI),这使得计算机的处理能力和集成度大大提高。 5. 完整的计算机系统由硬件系统和软件系统两部分组成,硬件包括计算机硬件设备,软件则包括系统软件和应用软件。 6. 计算机软件不仅指计算机程序,还包括相关的文档、数据和程序设计语言。 7. 软件系统通常分为系统软件和应用软件,系统软件如操作系统,应用软件则是用户用于特定任务的软件。 8. 机器语言是计算机可以直接执行的语言,不需要编译,因为它直接对应于硬件指令集。 9. 微机的性能主要由CPU决定,CPU的性能指标包括时钟频率、架构、核心数量等。 10. 运算器是计算机中的一个重要组成部分,主要负责进行算术和逻辑运算。 11. MIPS(Millions of Instructions Per Second)是衡量计算机每秒执行指令数的单位,用于描述计算机的运算速度。 12. 计算机存储数据的最小单位是位(比特,bit),是二进制的基本单位。 13. 一个字节由8个二进制位组成,是计算机中表示基本信息的最小单位。 14. 1MB(兆字节)等于1,048,576字节,这是常见的内存和存储容量单位。 15. 八进制数的范围是0-7,因此317是一个可能的八进制数。 16. 与十进制36.875等值的二进制数是100100.111,其中整数部分36转换为二进制为100100,小数部分0.875转换为二进制为0.111。 17. 逻辑运算中,0+1应该等于1,但选项C错误地给出了0+1=0。 18. 磁盘是一种外存储设备,用于长期存储大量数据,既可读也可写。 这些题目旨在帮助学习者巩固和检验计算机基础知识的理解,涵盖的领域广泛,对于初学者或需要复习基础知识的人来说很有价值。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【进阶】音频处理基础:使用Librosa

![【进阶】音频处理基础:使用Librosa](https://picx.zhimg.com/80/v2-a39e5c9bff1d920097341591ca8a2dfe_1440w.webp?source=1def8aca) # 2.1 Librosa库的安装和导入 Librosa库是一个用于音频处理的Python库。要安装Librosa库,请在命令行中输入以下命令: ``` pip install librosa ``` 安装完成后,可以通过以下方式导入Librosa库: ```python import librosa ``` 导入Librosa库后,就可以使用其提供的各种函数
recommend-type

设置ansible 开机自启

Ansible是一个强大的自动化运维工具,它可以用来配置和管理服务器。如果你想要在服务器启动时自动运行Ansible任务,通常会涉及到配置服务或守护进程。以下是使用Ansible设置开机自启的基本步骤: 1. **在主机上安装必要的软件**: 首先确保目标服务器上已经安装了Ansible和SSH(因为Ansible通常是通过SSH执行操作的)。如果需要,可以通过包管理器如apt、yum或zypper安装它们。 2. **编写Ansible playbook**: 创建一个YAML格式的playbook,其中包含`service`模块来管理服务。例如,你可以创建一个名为`setu
recommend-type

计算机基础知识试题与解析

"计算机基础知识试题及答案(二).doc" 这篇文档包含了计算机基础知识的多项选择题,涵盖了操作系统、硬件、数据表示、存储器、程序、病毒、计算机分类、语言等多个方面的知识。 1. 计算机系统由硬件系统和软件系统两部分组成,选项C正确。硬件包括计算机及其外部设备,而软件包括系统软件和应用软件。 2. 十六进制1000转换为十进制是4096,因此选项A正确。十六进制的1000相当于1*16^3 = 4096。 3. ENTER键是回车换行键,用于确认输入或换行,选项B正确。 4. DRAM(Dynamic Random Access Memory)是动态随机存取存储器,选项B正确,它需要周期性刷新来保持数据。 5. Bit是二进制位的简称,是计算机中数据的最小单位,选项A正确。 6. 汉字国标码GB2312-80规定每个汉字用两个字节表示,选项B正确。 7. 微机系统的开机顺序通常是先打开外部设备(如显示器、打印机等),再开启主机,选项D正确。 8. 使用高级语言编写的程序称为源程序,需要经过编译或解释才能执行,选项A正确。 9. 微机病毒是指人为设计的、具有破坏性的小程序,通常通过网络传播,选项D正确。 10. 运算器、控制器及内存的总称是CPU(Central Processing Unit),选项A正确。 11. U盘作为外存储器,断电后存储的信息不会丢失,选项A正确。 12. 财务管理软件属于应用软件,是为特定应用而开发的,选项D正确。 13. 计算机网络的最大好处是实现资源共享,选项C正确。 14. 个人计算机属于微机,选项D正确。 15. 微机唯一能直接识别和处理的语言是机器语言,它是计算机硬件可以直接执行的指令集,选项D正确。 16. 断电会丢失原存信息的存储器是半导体RAM(Random Access Memory),选项A正确。 17. 硬盘连同驱动器是一种外存储器,用于长期存储大量数据,选项B正确。 18. 在内存中,每个基本单位的唯一序号称为地址,选项B正确。 以上是对文档部分内容的详细解释,这些知识对于理解和操作计算机系统至关重要。