Saya menemukan diri saya berulang kali menulis sepotong kode:
def stringInList(str, list):
retVal = False
for item in list:
if str in item:
retVal = True
return retVal
Apakah ada cara saya dapat menulis fungsi ini lebih cepat/dengan kode kurang? Biasanya saya menggunakan ini dalam sebuah pernyataan jika, seperti ini:
if stringInList(str, list):
print 'string was found!'
Ya, gunakan setiap()
:
if any(s in item for item in L):
print 'string was found!'
Sebagai docs lagi, ini hampir setara dengan fungsi anda, tapi setiap()
dapat mengambil generator ekspresi bukan hanya sebuah string dan sebuah daftar, dan setiap()
sirkuit pendek. Setelah s di item
Benar, fungsi istirahat (anda hanya dapat melakukan ini dengan fungsi anda jika anda hanya mengubah retVal = True
untuk kembali Benar
. Ingat bahwa fungsi pecah ketika ia mengembalikan nilai).
Anda harus menghindari penamaan string str
dan daftar daftar
. Yang akan menimpa jenis built-in.