6
data = ['str', 'frt']
max(data, key=len)

max 関数は文字列を 1 つだけ返します。

両方の文字列を返すようにするにはどうすればよいですか?

両方の文字列の長さは等しいので、max両方の文字列を返す必要がありますが、1 つしか返さないため、最大項目をすべて返す方法はありますか?

4

3 に答える 3

7

これをリスト内包表記として書くことができます:

data = ['str', 'frt']
maxlen = max(map(len, data))
result = [s for s in data if len(s) == maxlen]
于 2012-05-30T19:52:33.423 に答える
1

定義により、max 関数は最大値を返します。アイテムを返すのではなく、一意の値だけを返します (最大値が同じアイテムが複数ある場合でも)。ソートアルゴリズムを使用して、必要な値を取得することをお勧めします。

あなたの例では:

data = ['str','frt']
sorted(data,key=len, reverse=True)
result = [s for s in data if len(s)==len(data[0])]
于 2012-05-30T19:53:10.910 に答える