gpt4 book ai didi

python - 列表中语法正确的人类可读字符串(带牛津逗号)

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:10 29 4
gpt4 key购买 nike

我想要一个语法正确的人类可读的列表字符串表示形式。例如,列表 ['A', 2, None, 'B,B', 'C,C,C'] 应该返回字符串 A, 2, None, B, B,和 C,C,C。这个人为的例子有点必要。请注意 Oxford comma与这个问题相关。

我尝试了 ', '.join(seq) 但这并没有产生上述示例的预期结果。

注意先前存在的类似问题:

最佳答案

此函数的工作原理是处理小列表的方式不同于处理大列表的方式。

from typing import Any, List

def readable_list(seq: List[Any]) -> str:
"""Return a grammatically correct human readable string (with an Oxford comma)."""
# Ref: https://stackoverflow.com/a/53981846/
seq = [str(s) for s in seq]
if len(seq) < 3:
return ' and '.join(seq)
return ', '.join(seq[:-1]) + ', and ' + seq[-1]

使用示例:

readable_list([])
''

readable_list(['A'])
'A'

readable_list(['A', 2])
'A and 2'

readable_list(['A', None, 'C'])
'A, None, and C'

readable_list(['A', 'B,B', 'C,C,C'])
'A, B,B, and C,C,C'

readable_list(['A', 'B', 'C', 'D'])
'A, B, C, and D'

关于python - 列表中语法正确的人类可读字符串(带牛津逗号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53981845/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com