Saya memiliki daftar panjang variabel dan saya sedang berusaha menemukan cara untuk menguji apakah item daftar yang sedang dievaluasi adalah string terpanjang yang terdapat dalam daftar. Dan saya menggunakan Python 2.6.1
Sebagai contoh:
mylist = ['abc','abcdef','abcd']
for each in mylist:
if condition1:
do_something()
elif ___________________: #else if each is the longest string contained in mylist:
do_something_else()
Tentunya ada pemahaman daftar sederhana yang pendek dan elegan yang saya hadapi?
python
list
list-comprehension
pengguna104997
sumber
sumber
print(max(["this", "does", "work"], key=len))
hanya mengembalikan"this"
bukan mengembalikan semua string terpanjang.m=max(map(len,xs)); [x for x in xs if len(x) == m]
. Saya tidak berpikir itu bisa dilakukan dengan baik dalam satu baris.Apa yang harus terjadi jika ada lebih dari 1 string terpanjang (pikirkan '12', dan '01')?
Cobalah itu untuk mendapatkan elemen terpanjang
Dan kemudian pertemuan rutin
sumber
atau lebih mudah:
sumber
http://effbot.org/zone/python-list.htm
Sepertinya Anda bisa menggunakan fungsi max jika Anda memetakannya dengan benar untuk string dan menggunakannya sebagai perbandingan. Saya akan merekomendasikan hanya menemukan maks sekali meskipun tentu saja, tidak untuk setiap elemen dalam daftar.
sumber
len(each) == max(len(x) for x in myList)
atau hanyaeach == max(myList, key=len)
sumber
sumber