2017-10-01 8 views
-1

誰かが、ソートされていないリストを2つのグループに分かれてアルファベット順に並べ替えることで、Pythonプログラムを作成してもらえますか?プログラムは、次に正しいアルファベット順の文字をアルファベット順に作成します。私の方法が上記のように行われなければならないので、これとは別の方法でこれを行うように教えてください。おかげで:)私が正しく理解していればPython分割文字列とアルファベット順の並べ替え

unsorted = ['B', 'D', 'A', 'G', 'F', 'E', 'H', 'C'] 

n = 4 
num = float(len(unsorted))/n 
l = [ unsorted [i:i + int(num)] for i in range(0, (n-1)*int(num), int(num))] 
l.append(unsorted[(n-1)*int(num):]) 

print(l) 


complete = unsorted.split() 
print(complete) 
+0

「私の方法は上記のとおりに行う必要があります」なぜですか?宿題? –

+0

あなたは自分で宿題を理解しようとすべきです。既に必要なツールがあります。 – fuzzycuffs

+0

期待される出力は何ですか?例を示してください。 – eventHandler

答えて

0

、あなたが以下のリストにunsortedをオンにしようとしている。その場合は、それが正しいを生成するように

['D', 'G', 'F', 'H'] 

、私はあなたのコードを変更しています出力。

unsorted = ['B', 'D', 'A', 'G', 'F', 'E', 'H', 'C'] 

n = 4 
num = float(len(unsorted))/n 
l = [ unsorted [i:i + int(num)] for i in range(0, (n-1)*int(num), int(num))] 
l.append(unsorted[(n-1)*int(num):]) 

# This part has been added in. It sorts each sublist, 
# then takes the second element (the character further along the alphabet) 
for i in range(len(l)): 
    l[i] = sorted(l[i])[1] 

print(l) 
0

私は次のコードはあなたに似ていますが、少し明確だと思う、あなたは['D', 'G', 'F', 'H']を探していると仮定すると:リストの内包表記を使用して、リスト、a[i:i+2]内の項目のペア、オーバー

a = ['B', 'D', 'A', 'G', 'F', 'E', 'H', 'C'] 

反復、そしてsorted(list,reverse=True)を用いて逆アルファベット順に各対のアイテムを並べ替える:

groups = [ sorted(a[i:i+2],reverse=True) for i in range(0,len(a),2)] 

反復ソート基上に、ペアの最初の項目を選択する

result = [i[0] for i in groups] 
関連する問題