Acu*_*nus 3 python list human-readable
我想要列表的语法上正确的人类可读的字符串表示形式。例如,列表['A', 2, None, 'B,B', 'C,C,C']应返回字符串A, 2, None, B,B, and C,C,C。这个人为的例子有些必要。请注意,牛津逗号与此问题有关。
我试过了,', '.join(seq)但是对于上述示例并没有产生预期的结果。
请注意预先存在的类似问题:
Acu*_*nus 10
此功能通过处理小列表而不是大列表来工作。
from typing import Any, List
def readable_list(seq: List[Any]) -> str:
seq = [str(s) for s in seq]
if len(seq) < 3:
return ' and '.join(seq)
return ', '.join(seq[:-1]) + ', and ' + seq[-1]
Run Code Online (Sandbox Code Playgroud)
用法示例:
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'
Run Code Online (Sandbox Code Playgroud)