尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

两道Python面试 高频 字符串处理 题目

两道Python面试 高频 字符串处理 题目 思考题 1题目raw_str [qwen-turbo,qwen-plus,deepseek]将该字符串转为 list。解法 1json.loads推荐字符串是标准 JSON 数组格式直接 json 反序列化。import json raw_str [qwen-turbo,qwen-plus,deepseek] res json.loads(raw_str) print(type(res)) # list print(res) # [qwen-turbo, qwen-plus, deepseek]⚠注意如果字符串是单引号包裹json.loads 会报错此时使用 ast.literal_eval解法 2ast.literal_evalimport ast raw_str [qwen-turbo,qwen-plus,deepseek] res ast.literal_eval(raw_str) print(res)思考题 2题目字符串里面存放多个Document对象的打印字符串需要取出每个对象的page属性。 原始字符串python运行s [Document(metadata{pk: 12, page: 2}, page_content2. 费⽤报销 业务活动中产⽣的费⽤须凭真 实、合规的发票并写明事由经审批后⽅可报销。严禁虚报、\\n谎报费⽤。\\n第五章 奖惩制度 \\n第13条 奖励\\n对于符合下列条件的员⼯公司将视情况给予通报表扬、奖⾦、晋升等奖励\\n1. 超额完成销售指标业绩突出者。\\n2. 提出合理化建议经采纳后为公司带来显著效益者。\\n3. 在维护公司利益和声誉⽅⾯有重 ⼤贡献者。), Document(metadata{pk: 27, page: 2}, page_content2. 费⽤报销 业务活动中产⽣的费⽤须凭真实、合规的发票并写明事由经审批后⽅可报销。严禁虚报、\\n谎报费⽤。\\n第五章 奖惩制度 \\n第13条 奖励\\n对于符合下列条件的员⼯公司将视情况给予通报表扬、奖⾦、晋升等奖励\\n1. 超额完成销售指标业绩突出者。\\n2. 提出合理化建议经采纳后为公司带来显著效益者。\\n3. 在维护公司利益和 声誉⽅⾯有重⼤贡献者。), Document(metadata{pk: 14, page: 3}, page_content3. 最后警告 情节严重留司察看。\\n4. ⽴即解雇 对于严重违纪者公司有权单⽅⾯⽆条件解除劳动合同⽆需⽀付经济补偿⾦。严重违纪包括但\\n不限于\\n贪污、受贿、泄露核⼼商业秘密。\\n虚报业绩、伪造销售记录或报销凭证。\\n⻓期旷⼯连续三天或⽉累计五天。\\n严重失职给公司造成重⼤经济损失或声誉损害。\\n违反国家法律法规被依法追究刑事责任。\\n第六章 附则 \\n第15条 守则的修订与解释)]问题分析该字符串不是标准 JSON是list[Document]对象直接 print 之后的字符串表示。json.loads无法解析不能直接反序列化。方案 1正则提取考试常用最简单提取所有page: 数字 的部分import re s [Document(metadata{pk: 12, page: 2}, page_content2. 费⽤报销......)] pattern rpage:\s*(\d) pages re.findall(pattern, s) # 转int page_list [int(p) for p in pages] print(page_list) # [2, 2, 3]方案 2ast.literal_eval 不可直接用❌直接ast.literal_eval(s)会报错因为里面出现Document(...)ast 不知道 Document 是什么类型。方案 3生产环境正确做法项目开发不要把list[Document]对象直接转字符串返回时把 Document 手动转为字典[doc.model_dump() for doc in docs]再序列化为 json 字符串接收方直接 json.loads直接取item[metadata][page]python运行# 正确示例不把对象print成字符串 from langchain_core.documents import Document docs:list[Document] [...] doc_dicts [d.model_dump() for d in docs] page_nums [item[metadata][page] for item in doc_dicts]考试标准答案总结考试场景用正则表达式匹配page: 数字拿到全部页码。开发场景Document 对象先调用.model_dump()转为字典再序列化禁止直接 print 对象得到字符串再解析。
返回列表