Catatan yang sorted(a)akan mengembalikan daftar yang diurutkan, jadi untuk perbandingan string Anda tidak perlu join()(lihat jawaban askewchan di bawah).
Skippy le Grand Gourou
Catatan yang ''.join(sorted(a, reverse=True, key=str.lower))dapat digunakan untuk melakukan jenis case-insensitive terbalik. Bisa jadi berguna.
Superdooperhero
89
>>> a ='ZENOVW'>>> b = sorted(a)>>>print b
['E','N','O','V','W','Z']
sortedmengembalikan daftar, sehingga Anda dapat membuatnya menjadi string lagi menggunakan join:
>>> c =''.join(b)
yang menggabungkan item bbersama dengan string kosong ''di antara setiap item.
Hei, solusi pertama itu agak berguna untuk pekerjaan rumah di mana saya harus menemukan surat menggunakan pembelahan dua. Ya, saya sudah tahu tentang kelas string dan metode find (), tetapi ini mengalahkan tujuan latihan;)
runlevel0
9
Anda bisa menggunakan pengurangan
>>> a ='ZENOVW'>>> reduce(lambda x,y: x+y, sorted(a))'ENOVWZ'
kode dapat digunakan untuk mengurutkan string dalam urutan abjad tanpa menggunakan fungsi python inbuilt
k = input ("Masukkan string apa saja lagi")
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)
Bagus untuk jawaban pertama Anda. Cukup pertimbangkan string 1 juta karakter, perintah tuple () Anda akan membuat daftar besar opsi yang terakumulasi yang menggunakan memori dalam jumlah besar yang tidak perlu.
tda
Sepakat. Jadi, untuk meningkatkan kompleksitas ruang, idenya adalah bekerja dengan iterable itu sendiri, instaed untuk mengubahnya menjadi struktur data. Bagus. Terima kasih.
sorted(a)
akan mengembalikan daftar yang diurutkan, jadi untuk perbandingan string Anda tidak perlujoin()
(lihat jawaban askewchan di bawah).''.join(sorted(a, reverse=True, key=str.lower))
dapat digunakan untuk melakukan jenis case-insensitive terbalik. Bisa jadi berguna.sorted
mengembalikan daftar, sehingga Anda dapat membuatnya menjadi string lagi menggunakanjoin
:yang menggabungkan item
b
bersama dengan string kosong''
di antara setiap item.sumber
Solusi Sorted () dapat memberi Anda beberapa hasil yang tidak terduga dengan string lainnya.
Daftar solusi lain:
Mengurutkan huruf dan membuatnya berbeda:
Mengurutkan huruf dan membuatnya berbeda sambil menyimpan huruf besar:
Sortir huruf dan simpan duplikat:
Jika Anda ingin menghilangkan ruang di hasilnya, tambahkan fungsi strip () dalam salah satu dari kasus yang disebutkan:
sumber
Anda bisa menggunakan pengurangan
sumber
Fungsi Python
sorted
mengembalikan hasil berbasis ASCII untuk string.TIDAK BENAR : Dalam contoh di bawah ini,
e
dand
berada di belakangH
danW
karena itu dengan nilai ASCII.BENAR : Untuk menulis string yang diurutkan tanpa mengubah huruf. Gunakan kode:
Jika Anda ingin menghapus semua tanda baca dan angka. Gunakan kode:
sumber
kode dapat digunakan untuk mengurutkan string dalam urutan abjad tanpa menggunakan fungsi python inbuilt
k = input ("Masukkan string apa saja lagi")
sumber
Sangat menyukai jawabannya dengan fungsi reduce (). Berikut cara lain untuk mengurutkan string menggunakan akumulatif ().
diurutkan (s) -> ['i', 'i', 'i', 'i', 'm', 'p', 'p', 's', 's', 's', 's' ]
tuple (terakumulasi (diurutkan)) -> ('i', 'ii', 'iii', 'iiii', 'iiiim', 'iiiimpp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppss', 'iiiimppsss ',' iiiimppssss ')
Kami memilih indeks terakhir (-1) dari tuple
sumber