news 2026/7/18 3:21:48

Python面试高频题解析:字符串、列表与字典操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python面试高频题解析:字符串、列表与字典操作

1. Python面试问题深度解析:21-40题实战指南

作为Python开发者,面试中经常会被问到各种基础知识和实战问题。本系列文章精选了100个高频Python面试题,本文聚焦第21到40题,涵盖字符串处理、列表操作、字典应用等核心知识点。这些问题不仅能检验你的Python基础,更能考察你对语言特性的理解深度。

1.1 字符串处理实战技巧

1.1.1 字符串反转与大小写转换

字符串反转是面试中的经典问题。Python中可以通过切片操作轻松实现:

s = 'ilovechina' reversed_str = s[::-1] # 输出:'anihcevoli'

大小写转换则有多种方法:

# 首字母大写 'hello world'.title() # 'Hello World' # 全转小写 'HHH'.lower() # 'hhh' # 去除首尾空格 ' adabdw '.strip() # 'adabdw'

注意:strip()只能去除首尾空格,中间的空格需要用其他方法处理。比如用正则表达式:re.sub(r'\s+', ' ', '你好 中国 ')

1.1.2 字符串格式化与编码

Python中有三种主流字符串格式化方式:

# %格式化(Python2风格) 'Hello %s' % 'World' # str.format()(Python3推荐) 'Hello {}'.format('World') # f-string(Python3.6+最佳实践) name = 'World' f'Hello {name}'

编码转换需要注意:

# GBK转UTF-8 s = '中文'.encode('gbk') # 先编码为GBK s.decode('gbk').encode('utf-8') # 解码后转UTF-8

1.2 列表操作高级技巧

1.2.1 列表去重与合并

列表去重有多种实现方式:

# 方法1:利用集合特性 lst = [1,2,3,1,2] unique_lst = list(set(lst)) # [1, 2, 3] # 方法2:保持原有顺序 from collections import OrderedDict unique_lst = list(OrderedDict.fromkeys(lst))

列表合并的几种方式:

a = [1,5,7,9] b = [2,2,6,8] # 直接相加(创建新列表) c = a + b # extend方法(原地修改) a.extend(b) # 切片赋值 a[len(a):] = b
1.2.2 列表展开与打乱

展开嵌套列表的优雅方式:

nested = [[1,2],[3,4],[5,6]] flat = [item for sublist in nested for item in sublist] # 输出:[1, 2, 3, 4, 5, 6]

随机打乱列表:

import random lst = [1,2,3,4,5] random.shuffle(lst) # 原地打乱

1.3 字典操作精髓

1.3.1 字典合并与排序

字典合并的三种方式:

a = {"A":1,"B":2} b = {"C":3,"D":4} # 方法1:update() c = {} c.update(a) c.update(b) # 方法2:dict构造函数 c = dict(a, **b) # 方法3:解包操作(Python3.5+推荐) c = {**a, **b}

字典列表按值排序:

data = [ {'name':'alice', 'age':38}, {'name':'bob', 'age':18}, {'name':'Carl', 'age':28} ] sorted_data = sorted(data, key=lambda x: x['age'])
1.3.2 字典生成式与元组转换

字典生成式的妙用:

# 生成平方字典 square_dict = {x: x*x for x in range(6)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

元组转字典的两种方式:

keys = ('a', 'b') values = (1, 2) # 方法1:zip转换 dict(zip(keys, values)) # 方法2:字典生成式 {k:v for k,v in zip(keys, values)}

1.4 数据类型综合应用

1.4.1 可变与不可变类型

Python中核心数据类型分类:

  • 不可变类型:int、float、str、tuple、frozenset
  • 可变类型:list、dict、set

判断示例:

a = (1,2,3) a[0] = 4 # 报错:元组不可变 b = [1,2,3] b[0] = 4 # 正常执行
1.4.2 生成器与迭代器

列表推导式转生成器:

# 列表推导式(立即计算) [x*x for x in range(10)] # 生成器表达式(惰性计算) (x*x for x in range(10))

切片生成器的实现:

import itertools gen = (x for x in range(100)) sliced = itertools.islice(gen, 10, 20) # 取10-20项

1.5 常见问题排查与优化

1.5.1 性能优化技巧

处理大数据集时,生成器比列表更节省内存:

# 不好的做法:一次性读取大文件 with open('huge.log') as f: lines = f.readlines() # 可能耗尽内存 # 推荐做法:使用生成器逐行处理 def read_lines(file): with open(file) as f: for line in f: yield line
1.5.2 易错点警示

元组"可变性"陷阱:

a = (1,2,3,[4,5]) a[3].append(6) # 可以执行!因为修改的是列表元素 a[0] = 7 # 报错!不能修改元组直接元素

深拷贝与浅拷贝区别:

import copy lst = [1,2,[3,4]] shallow = copy.copy(lst) # 只拷贝第一层 deep = copy.deepcopy(lst) # 递归拷贝所有层级

掌握这些核心知识点,不仅能帮助你在Python面试中游刃有余,更能提升日常开发中的代码质量和效率。建议读者针对每个问题自己动手实践,理解背后的原理而不仅仅是记住答案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 3:20:47

网络安全学习第137天

前言今天没有挖到洞,感觉就是我太懒了,然后没了,这个月运气比较好正题然后今天也是没干啥,就是收益有点低,我就是只看眼前的收益,然后就是ai还是没有调好,我就是让ai做一些简单的,全…

作者头像 李华
网站建设 2026/7/18 3:20:28

FastAPI构建LLM SaaS的Auth与文件上传核心骨架

1. 项目概述:为什么一个LLM SaaS的起点,必须是“能登录、能传文件”的骨架做LLM应用开发的朋友,大概率都踩过这个坑:兴致勃勃搭好大模型推理接口,本地调通了,连上前端也跑起来了,结果一上线就卡…

作者头像 李华
网站建设 2026/7/18 3:18:54

RMSE实战指南:从手算到业务决策的误差度量全解析

1. 为什么我每次建模前都要先手算一遍 RMSE?——一个老数据工程师的实操笔记RMSE(Root Mean Squared Error)不是教科书里那个冷冰冰的公式,而是我过去八年在金融风控、电商销量预测、工业设备故障回归诊断中,每天睁眼第…

作者头像 李华
网站建设 2026/7/18 3:18:21

用Ai开发微信小程序,没想到那么简单(五)微信收款播报整蛊

本篇继续使用Ai开发小程序,全程不手写一句代码,今天做一个微信收款音频播放的整蛊小程序。 第一步 首先明确功能需要一个tts的功能,才能把“微信收款XXX元”文本变成音频进行播放。基于这个大前提,我进行了几个尝试 一.微信…

作者头像 李华
网站建设 2026/7/18 3:17:38

Node.js核心优势与应用场景全解析

1. Node.js 是什么?为什么它值得关注? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它让 JavaScript 突破了浏览器的限制,能够在服务器端运行。这彻底改变了 JavaScript 只能用于前端开发的传统认知。Node.js 采…

作者头像 李华
网站建设 2026/7/18 3:16:23

Cordova插件开发指南:从原理到实战

1. Cordova插件核心概念解析Cordova插件本质上是一个桥梁系统,它让Web应用能够突破浏览器沙箱限制,直接调用移动设备的原生功能。这个设计理念源于Hybrid应用开发的核心需求——既保留Web技术快速迭代的优势,又能获得原生API的强大能力。每个…

作者头像 李华