11

文字列を特定の長さに制限し、長さを超えた場合は、その後に 3 つのドット (...) を追加するための関数が、組み込みまたは標準ライブラリの Python にありますか?

例えば:

>>> hypothetical_cap_function("Hello, world! 私は文字列です", 10)
"こんにちは、 ..."
>>> hypothetical_cap_function("Hello, world! 私は文字列です", 20)
「こんにちは、世界!私は...」
>>> hypothetical_cap_function("こんにちは、世界! 私は文字列です", 50)
「こんにちは、世界!私はひもです」
4

2 に答える 2

20
def cap(s, l):
    return s if len(s)<=l else s[0:l-3]+'...'
于 2012-07-22T17:24:39.727 に答える
1

おそらく最も柔軟な (単にスライスする以外の) 方法は、次のようなラッパーを作成することですtextwrap.wrap:知っておくと便利なモジュールです)

def mywrap(string, length, fill=' ...'):
    from textwrap import wrap
    return [s + fill for s in wrap(string, length - len(fill))]

s = "Hello, world! I'm a string"
print mywrap(s, 10)
# ['Hello, ...', 'world! ...', "I'm a ...", 'string ...']

次に、必要な要素を取得します。

于 2012-07-22T17:33:08.460 に答える