de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 tom
tom
Question

Tidak Python memiliki cara yang bersih untuk mengekspresikan "jika x berisi a|b|c|d..."?

Yang Pythonic cara untuk memeriksa apakah string x substring y adalah:

if x in y:

Menemukan jika x adalah sama dengan a, b, c, d, e, f atau g juga Pythonic:

if x in [a,b,c,d,e,f,g]:

Tapi memeriksa jika beberapa string x berisi a, b, c, d, e, f atau g tampaknya kikuk:

if a in x or b in x or c in x or d in x or e in x or f in x or g in x

Apakah ada yang lebih Pythonic metode memeriksa apakah string x mengandung unsur daftar?

Aku tahu itu sepele untuk menulis ini sendiri menggunakan loop atau menggunakan regex:

re.search('(dog|cat|bird|mouse|elephant|pig|cow)', x)

tapi aku bertanya-tanya jika ada cara yang lebih bersih yang tidak melibatkan regex.

72 2013-10-31T18:29:10+00:00 4
 arshajii
arshajii
Pertanyaan edit 22 Januari 2014 в 3:56
Pemrograman
python
if-statement
python-3.x
substring
Solution / Answer
 arshajii
arshajii
31 Oktober 2013 в 6:32
2013-10-31T18:32:32+00:00
Lebih
Sumber
Sunting
#22681464

Yang Pythonic pendekatan yang akan digunakan setiap():

if any(s in x for s in (a,b,c,d,e,f,g)):

Dari dokumentasi terkait:

apapun(iterable)

Return True jika semua elemen dari iterable adalah benar. Jika iterable kosong, kembali Palsu. Setara dengan:

def apapun(iterable): untuk elemen di iterable: jika elemen: mengembalikan True kembali Palsu

Juga, perhatikan bahwa I've digunakan sebuah tuple bukan dari daftar berikut. Jika anda a-g nilai-nilai yang telah ditentukan, maka tupel memang akan disukai. Lihat: tupel Yang lebih efisien dari list di Python?

 Community
Community
Jawaban edit 23 Mei 2017 в 12:24
118
0
 jwodder
jwodder
31 Oktober 2013 в 6:32
2013-10-31T18:32:39+00:00
Lebih
Sumber
Sunting
#22681465
if any(q in x for q in [a,b,c,d,e,f,g]):

Saya berpikir bahwa's tentang pendek & Pythonic karena anda bisa mendapatkannya.

26
0
Snakes  and Coffee
Snakes and Coffee
1 November 2013 в 5:25
2013-11-01T05:25:51+00:00
Lebih
Sumber
Sunting
#22681467

Sedikit terlambat ke pesta, tapi

not frozenset(x).isdisjoint(frozenset(y))

akan bekerja, dan mungkin lebih cepat (algorithmically, tapi mungkin tidak untuk yang lebih kecil kasus uji).

10
0
 kiriloff
kiriloff
1 November 2013 в 4:05
2013-11-01T04:05:45+00:00
Lebih
Sumber
Sunting
#22681466

tanpa menggunakan ada namun cukup max

def is_in(symbol, lst):
    return max([symbol in x for x in lst]) 

print is_in('a',['ae','br','tl'])
print is_in('c',['ae','br','tl'])

memberikan

>>> 
True
False
3
0
Related communities 6
Python Indonesia
Python Indonesia
24 631 pengguna
Programmer Python Indonesia. Group ini dikelola oleh sejumlah admin. Baca pesan tersemat / pinned message: https://t.me/pythonID/217588
Buka telegram
Indonesian Python Warriors
Indonesian Python Warriors
1 462 pengguna
Di grup ini tidak ada kewajiban untuk menggunakan username dan foto. Yang tidak boleh adalah spamming. Gak boleh baper, kalau nanya yang bener, eror jangan difoto pake HP, gunakan screenshot, code copas ke pastebin.com lalu share link ke sini.
Buka telegram
Python-ID Jogja
Python-ID Jogja
962 pengguna
Buka telegram
BASIC PYTHON INDONESIA
BASIC PYTHON INDONESIA
220 pengguna
Buka telegram
Python Newbie Indonesia
Python Newbie Indonesia
181 pengguna
Peraturan grup Python Newbie 🌻Dilarang spam 🌻Dilarang menggunakan bahasa kasar 🌻Dilarang beriklan di grup tanpa seizin admin Beberapa video dasar python dapat diliat melalui channel youtube juan aditya Jangan lupa untuk subscribe ya🙏
Buka telegram
PythonWealth Indonesia 🇮🇩
PythonWealth Indonesia 🇮🇩
29 pengguna
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
UbiBot UK
Terdaftar 14 jam yang lalu
2
Галина Утяшова
Terdaftar 1 hari yang lalu
3
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
4
Akshit Mehta
Terdaftar 1 minggu yang lalu
5
me you
Terdaftar 1 minggu yang lalu
ID
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi