यह बहुत आसान है लेकिन मुझे इसे करने का एक सुंदर, पाइथोनिक तरीका पसंद है। असल में, एक शब्दकोश दिया जाता है, subdictionary लौटाता है जिसमें केवल उन चाबियाँ होती हैं जो एक निश्चित स्ट्रिंग से शुरू होती हैं।एक निश्चित स्ट्रिंग के साथ शुरू होने वाली कुंजियों द्वारा एक शब्दकोश को स्लाइड करना
» d = {'Apple': 1, 'Banana': 9, 'Carrot': 6, 'Baboon': 3, 'Duck': 8, 'Baby': 2}
» print slice(d, 'Ba')
{'Banana': 9, 'Baby': 2, 'Baboon': 3}
यह एक समारोह के साथ क्या करना काफी सरल है:
def slice(sourcedict, string):
newdict = {}
for key in sourcedict.keys():
if key.startswith(string):
newdict[key] = sourcedict[key]
return newdict
लेकिन निश्चित रूप से वहाँ एक अच्छे, चालाक, अधिक पठनीय समाधान है? क्या जनरेटर यहां मदद कर सकता है? (मेरे पास उन लोगों का उपयोग करने के लिए पर्याप्त अवसर नहीं हैं)।
नहीं अस्पष्ट अजगर कोड सिर्फ इसलिए कि यह संभव है। पाइथन का पूरा विचार पठनीयता है। अगर आपको अस्पष्ट शक्ति की आवश्यकता है, तो पर्ल का उपयोग करें। – user3181121
यह भी देखें http://pythoncentral.io/how-to-slice-custom-objects-classes-in-python/, आप अपने स्वयं के प्रकार/उप-वर्ग में '__getitem__' को कस्टमाइज़ कर सकते हैं। – bjd2385