Say bulunan bir dize AAAGCTTACGAAAAAAACGTA
var ve ben ne olursa olsun dizede meydana geldiği, 4 A
s oluşumu dahil sonra bir şey kaldırıp istiyoruz. Bu yüzden bu örnek için kırpmadan sonra AAAGCTTACG
ile kalıyoruz. Bununla ilgili hızlı ve verimli bir yol ne olurdu? VarsaTrim dize
2
A
cevap
4
Sen str.split()
kullanabilirsiniz: Çok güzel
>>> s = "AAAGCTTACGAAAAAAACGTA"
>>> s.split("AAAA", 1)[0]
'AAAGCTTACG'
1
Sadece find
olanlar AAAA
ve dilim:
>>> s = "AAAGCTTACGAAAAAAACGTA"
>>> s[:s.find("AAAA")]
'AAAGCTTACG'
Ancak, ilk dize AAAA
içerip içermediğini kontrol etmelidir bu sayede aksi takdirde son karakteri uzakta dilim olacaktır.
4
Açgözlü bir eşleşme kullanabilir ve hiçbir şey ile değiştiremezsiniz. Bunu daha okunabilir bulursanız
import re
new_string = re.sub(r'AAAA.*', '', original_string)
Alternatif AAAA
da A{4}
olarak ifade edilebilir.
. Ben bir Python uzmanı değilim, ancak bunun normal ifadeden daha hızlı olabileceğini hissediyorum. – sidyll
Ayrıca "AAAA" içermediği durumda güzel çalışır. –