回答:
できるよ:
>>> a = 'ZENOVW'
>>> ''.join(sorted(a))
'ENOVWZ'
''.join(sorted(a, reverse=True, key=str.lower))
逆の大文字と小文字を区別しない並べ替えを実行するために使用できることに注意してください。便利かもしれません。
Sorted()ソリューションは、他の文字列で予期しない結果をもたらす可能性があります。
他のソリューションのリスト:
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower())))
' belou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s)))
' Bbelou'
>>> s = "Bubble Bobble"
>>> ''.join(sorted(s))
' BBbbbbeellou'
結果のスペースを取り除きたい場合は、上記のいずれかの場合にstrip()関数を追加します。
>>> s = "Bubble Bobble"
>>> ''.join(sorted(set(s.lower()))).strip()
'belou'
Python関数sorted
は文字列に対してASCIIベースの結果を返します。
INCORRECT:以下の例では、e
とd
の背後にあるH
とW
、それはASCII値をだため。
>>>a = "Hello World!"
>>>"".join(sorted(a))
' !!HWdellloor'
CORRECT:文字の大文字と小文字を変更せずにソートされた文字列を書き込むため。コードを使用します。
>>> a = "Hello World!"
>>> "".join(sorted(a,key=lambda x:x.lower()))
' !deHllloorW'
すべての句読点と数字を削除する場合。コードを使用します。
>>> a = "Hello World!"
>>> "".join(filter(lambda x:x.isalpha(), sorted(a,key=lambda x:x.lower())))
'deHllloorW'
コードを使用して、Pythonの組み込み関数を使用せずに文字列をアルファベット順に並べ替えることができます
k = input( "任意の文字列をもう一度入力してください")
li = []
x = len(k)
for i in range (0,x):
li.append(k[i])
print("List is : ",li)
for i in range(0,x):
for j in range(0,x):
if li[i]<li[j]:
temp = li[i]
li[i]=li[j]
li[j]=temp
j=""
for i in range(0,x):
j = j+li[i]
print("After sorting String is : ",j)
reduce()関数の答えが本当に気に入りました。accumulate()を使用して文字列を並べ替える別の方法を次に示します。
from itertools import accumulate
s = 'mississippi'
print(tuple(accumulate(sorted(s)))[-1])
ソート済み-> ['i'、 'i'、 'i'、 'i'、 'm'、 'p'、 'p'、 's'、 's'、 's'、 's' ]
tuple(accumulate(sorted(s)))->( 'i'、 'ii'、 'iii'、 'iiii'、 'iiiim'、 'iiiimp'、 'iiiimpp'、 'iiiimpps'、 'iiiimppss'、 'iiiimppsss '、' iiiimppssss ')
タプルの最後のインデックス(-1)を選択しています
sorted(a)
ので、あなたがする必要はありません文字列の比較のために、ソートされたリストを返しますjoin()
(askewchan答えの下記を参照のこと)。