Python中如何将MySQL查询返回的元组列表转为字符串列表?
解决MySQL查询结果格式转换问题
嘿Andreas,这种场景我平时写代码也经常碰到,给你几个简单高效的转换方案:
方法1:列表推导式(最常用,可读性拉满)
这是Python处理这类问题最直观的方式,直接遍历原结果列表,提取每个元组的第一个元素就行:
clean_results = [item[0] for item in results]
把你的示例输入[('./results/file1.pdf',), ('./results/file2.pdf',), ('./results/file3',)]代入,执行后就能得到你想要的['./results/file1.pdf', './results/file2.pdf', './results/file3']。
方法2:用map函数(函数式编程风格)
如果你偏好函数式写法,可以结合map和匿名函数来实现:
clean_results = list(map(lambda x: x[0], results))
map会自动把原列表里的每个元组传给lambda函数,提取第一个元素后,再转成列表就搞定了。
方法3:元组解包(更严谨的写法)
要是想让代码意图更明确,同时避免后续可能出现的元组元素数量错误,可以用元组解包的方式:
clean_results = [filename for (filename,) in results]
这种写法明明白白告诉读者,每个元素都是单元素元组——万一后续查询不小心返回了多元素的元组,代码会直接抛出错误,帮你提前发现问题。
这些方法都能完美解决你的需求,选哪个全看你个人的编码习惯啦~
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

