如何编写简洁代码,动态拼接字符串列表生成带and/or的指定短语?
列表字符串按规则拼接的简洁实现
针对这个需求,用Python可以写出非常简洁的实现,直接处理不同长度的列表场景:
def join_with_conjunction(items, conj="or"): match len(items): case 1: return items[0] case 2: return f"{items[0]} {conj} {items[1]}" case _: return f"{', '.join(items[:-1])} {conj} {items[-1]}"
测试示例
- 输入
["A"]→ 输出"A" - 输入
["A", "B"]→ 输出"A or B" - 输入
["A", "B", "C"]→ 输出"A, B or C" - 若需要用"and"连接,调用
join_with_conjunction(["A", "B", "C"], "and")→ 输出"A, B and C"
代码说明
- 利用Python 3.10+的match-case语法分支处理不同长度的列表,逻辑清晰直观
- 多元素场景下,通过
items[:-1]取除最后一个外的所有元素,用,拼接后再加上连接词和最后一个元素,一步完成格式要求
内容的提问来源于stack exchange,提问作者Robert Corvus
相关产品推荐
相关产品推荐

