2024.9.27 Python面试八股文

news/2024/11/17 3:46:50/

1.列表操作:

1.列表.pop(index)
这样可以pop指定下标的元素
2.列表.reverse()
列表翻转
3.列表名.count(数据):数据在列表中出现的次数。

In [56]: a = [11, 22, 11, 33, 11]
In [57]: a.count(11)
Out[57]: 3

4.列表名.index(数据):数据在列表中首次出现时的索引,没有查到会报错。
In [59]: a = [11, 22, 33, 44, 22]
In [60]: a.index(22)
Out[60]: 1
5.请写出一段 Python 代码实现删除一个 list 里面的重复元素?
如果想要保持他们原来的排序:用 list 类的 sort 方法:

l1=['b','c','d','b','c','a','a']
l2=list(set(l1))
l2.sort(key=l1.index)
print(l2)
#或者下面
l1=['b','c','d','b','c','a','a']
l2=[]
for item in l1:if item not in l2:l2.append(item)

2.集合操作

#交集
A&B
#并集
A|B
#差集
A-B#A里有的,B里也有的,减掉A中的元素,B里有A里没有的,不管,A里有B里没有的,留下
#对称差集
A^B#A|B-A&B

3.文件操作

with open('file.txt', 'r') as f:for i in range(4):  # 假设文件有 4 行line = f.readline()if i in [1, 2]:  # 读取第 2 行和第 3 行print(f"Line {i}: {line.strip()}")

这个例子就表明了,正常情况下我们如何调用某一行

4.strip()

strip说白了就是给你去除多余的空格和回车,文件中是有回车字符的,这样就可以让文件或者输入更干净

line = "   Hello, World!   \n"
line = line.strip()  # 赋值给 line
print(line)  # 输出 "Hello, World!"

5.浅拷贝和深拷贝

# 一维列表
original = [1, 2, 3]
shallow_copy = original[:]
shallow_copy[0] = 99
print(original)  # 输出 [1, 2, 3],两者独立# 多维列表
original = [[1, 2], [3, 4]]
shallow_copy = original[:]
shallow_copy[0][0] = 99
print(original)  # 输出 [[99, 2], [3, 4]],因为共享了可变对象import copy
original = [[1, 2], [3, 4]]
deep_copy = copy.deepcopy(original)
deep_copy[0][0] = 99
print(original)  # 输出 [[1, 2], [3, 4]]

6.回调函数

def process_data(data, callback):result = [x * 2 for x in data]callback(result)def my_callback(result):print("处理后的结果:", result)def save_to_file(result):with open('output.txt', 'w') as f:f.write(str(result))data = [1, 2, 3, 4, 5]# 使用不同的回调函数
process_data(data, my_callback)  # 打印结果
process_data(data, save_to_file)  # 保存到文件

回调函数就是把函数当成参数随着函数带入进去。这个例子中你完全可以在process_data里把两个函数都写进去,但是你的灵活性就降低了。使用回调函数的方法就可以灵活的修改本函数中使用具体哪个块来操作。这个逻辑不是内联函数,仍然是函数的调用,是把函数的指针(地址)作为参数传递给另一个函数,将整个函数当作一个对象,赋值给调用的函数。

这样你可以通过传入不同的回调函数来完成不同的任务,而不需要修改 process_data 本身的实现。
使用回调函数作为参数的设计使得你的代码更加灵活、可扩展、且不同部分可以独立演进。在简单的场景下,可以直接写死回调函数,但在复杂项目中,回调函数作为参数能带来更多的灵活性和可维护性。


http://www.ppmy.cn/news/1531690.html

相关文章

代码随想录_刷题笔记_第三次

字符串 — KMP算法(理论) **解决问题:**字符串匹配的问题(eg:文本串 aabaabaaf 模式串 aabaaf 求在文本串中是否出现过模式串) **暴力匹配:**当 b 和 f 不匹配时,整体向后跳一位再进…

java项目之健身房管理系统源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的健身房管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 健身房管理系统的主要使用…

linux配置git

一、生成新的 SSH 密钥 ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 按照提示操作: 当提示 Enter file in which to save the key (/root/.ssh/id_rsa): 时,直接按回车键使用默认路径。 当提示 Enter passphrase (empty for no p…

《AI系统:原理与架构》于华为HC大会2024正式发布

2024年9月21日,《AI系统:原理与架构》新书发布会在上海世博馆华为HC大会顺利举办。本书由华为昇腾技术专家、B站AI科普博主ZOMI酱和哈工大软件学院副院长苏统华教授联合编写,是领域内AI系统方面填补空白的重磅之作。 发布会上,《A…

【第二十章:Sentosa_DSML社区版-机器学习之自动建模】

目录 20.1 自动回归 20.2 自动分类 20.3 自动聚类 20.4 AutoARIMA 20.5 自动数据准备 【第二十章:Sentosa_DSML社区版-机器学习之自动建模】 20.1 自动回归 1.算子介绍 为了方便用户在不了解每个具体回归算法原理,及每个算法参数设置具体含义的情…

使用脚本自动化管理外部Git仓库依赖

在软件开发中,管理外部Git仓库的依赖是一项常见且重要的任务。随着项目的发展,这些外部仓库可能会频繁更新,包含重要的修复或新功能。手动更新这些依赖的提交哈希值不仅耗时,而且容易出错。为了解决这个问题,我们可以编…

WebAPI编程(第三天,第四天)

WebAPI编程(第三天,第四天) day03 - Web APIs1.1. 节点操作1.1.1 删除节点1.1.2 案例:删除留言1.1.3 复制(克隆)节点1.1.4 案例:动态生成表格1.1.5 创建元素的三种方式1.1.6 innerTHML和createE…

如何配置flutter(超详细的哦)

目录 首先先去官网下载zip包 下载下来之后就是解压 配置环境变量 winr查看是否配置成功 解决报错 [!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)X cmdline-tools component is missing Android license status unknown 首先先去官…