如何用最Pythonic和高效的方式将字符串列表连接在一起,直到长度过长。

3

假设我正在为一家商店创建一个结账系统。以下是产品清单:

products = ["Apple", "Banana", "Cherry", "Durian"]

我希望使用逗号连接它们。因此,我可以使用以下内容:

", ".join(products) # Returns "Apple, Banana, Cherry, Durian"

如果我想限制输出字符串的长度怎么办?比如,如果最终字符串超过20个字符,我想输出"Apple, Banana…"。问题是,我想防止名称被截断,所以我不希望出现"Apple, Banana, Cher…"这种情况。在某些情况下,products中的字符串可能包含逗号,所以我不想用逗号来分割字符串。

当你说“限制输出字符串的长度”时,你是想保持连接后续子字符串,只是限制渲染/打印输出的长度吗?这通常是所做的。(例如在pandas中) - smci
1个回答

7
products = ["Apple", "Banana", "Cherry", "Durian"]

string = products[0]

for v in products[1:]:
    if len(string) + len(', ') + len(v) <= 20:
        string = string + ', ' + v
    else:
        string = string + '...'
        break

print(string)

输出:

Apple, Banana...

1
只是一个微小的细节,但你忘记了 ... ;) - mozway

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接