Bu oldukça basit bir işlemdir ancak bunu yapmanın güzel, pythonik bir yolunu seviyorum. Temel olarak, bir sözlük verildiğinde, yalnızca belirli bir dizeyle başlayan anahtarları içeren alt dizgiyi döndür.Belirli bir dizeyle başlayan anahtarlarla sözlüğü kesme
» d = {'Apple': 1, 'Banana': 9, 'Carrot': 6, 'Baboon': 3, 'Duck': 8, 'Baby': 2}
» print slice(d, 'Ba')
{'Banana': 9, 'Baby': 2, 'Baboon': 3}
Bu bir fonksiyonu ile yapmak oldukça basittir:
def slice(sourcedict, string):
newdict = {}
for key in sourcedict.keys():
if key.startswith(string):
newdict[key] = sourcedict[key]
return newdict
Fakat elbette daha güzel, zeki, daha okunabilir bir çözüm var mı? Bir jeneratör burada yardımcı olabilir mi? (Bunları kullanmak için asla yeterli fırsatım yok).
belirsiz piton kodunu Yapma. Python'un tüm fikri okunabilirliktir. Sadece belirsiz güce ihtiyacınız varsa Perl kullanın. – user3181121
Ayrıca bkz. Http://pythoncentral.io/how-to-slice-custom-objects-classes-in-python/, '__getitem__' öğesini kendi türünüzdeki/alt sınıfın altından özelleştirebilirsiniz. – bjd2385