Bir dize şablonunun bir ikamede kullanabileceği olası tüm anahtar kelime argümanlarının bir listesini almak istiyorum.Anahtardan şablon alın
Bunu yeniden yapmanın bir yolu var mı? Ben basit Mad-lib benzeri bir program yazıyorum
text="$one is a $lonely $number."
keys = get_keys(text)
# keys = ('one', 'lonely', 'number')
ve ben string.format veya Template strings biriyle şablon ikame gerçekleştirmek istiyorum:
Böyle bir şey yapmak istiyorum. 'Hikayeyi' yazmak istiyorum ve programımın bir kullanıcının üretmesi gereken 'anahtar kelimeler' (isimler, fiiller, vb.) Bir şablon dosyası üretmesini istiyorum. Bunu normal ifadelerle yapabilirim, ama alternatif bir çözüm olup olmadığını merak ediyordum? String.format ve string şablonuna alternatiflere açığım.
Bunun için bir çözüm olacağını düşündüm, ancak hızlı bir aramada rastlamadım. Bu soruyu reverse template with python buldum, ama aslında aradığım şey değil. Bu, bunun re
ile yapılabileceğini tekrar doğrulamaktadır.
DÜZENLEME:
Ben $$
'$' için bir kaçış olduğunu ve istediğim bir belirteç olmadığını belirtmeliyiz. $$5
, "$ 5" olarak gösterilsin.
Neredeyse aradığım şey. Belki benim sorumun çalışması gerekiyor ama temelde tekerleği yeniden icat etmek istemedim. Teşekkürler. – Yann
Dize bir anahtarla başlarsa bu çalışmaz. Yukarıdakileri, '{foo} test' ile deneyin. – syntacticmarmalade
@syntacticmarmalade Python 3.6'da benim için iyi çalışıyor. Sonunda listenin bir 'Yok'un olduğu anlamına gelirse, bunun nedeni dizenin bir tuş ile * bitmemesidir. Sadece 'Yok' örneklerini filtreleyebilirsiniz. –