subscriptable नहीं है मैं त्रुटिलेखन त्रुटि: 'फिल्टर' वस्तु
TypeError: 'filter' object is not subscriptable
प्राप्त कर रहा
जब कोड
bonds_unique = {}
for bond in bonds_new:
if bond[0] < 0:
ghost_atom = -(bond[0]) - 1
bond_index = 0
elif bond[1] < 0:
ghost_atom = -(bond[1]) - 1
bond_index = 1
else:
bonds_unique[repr(bond)] = bond
continue
if sheet[ghost_atom][1] > r_length or sheet[ghost_atom][1] < 0:
ghost_x = sheet[ghost_atom][0]
ghost_y = sheet[ghost_atom][1] % r_length
image = filter(lambda i: abs(i[0] - ghost_x) < 1e-2 and
abs(i[1] - ghost_y) < 1e-2, sheet)
bond[bond_index] = old_to_new[sheet.index(image[0]) + 1 ]
bond.sort()
#print >> stderr, ghost_atom +1, bond[bond_index], image
bonds_unique[repr(bond)] = bond
# Removing duplicate bonds
bonds_unique = sorted(bonds_unique.values())
और
sheet_new = []
bonds_new = []
old_to_new = {}
sheet=[]
bonds=[]
त्रुटि के निम्नलिखित ब्लॉक चलाने का प्रयास लाइन
पर होता हैमैं क्षमा चाहता हूं कि इस प्रकार का प्रश्न कई बार पोस्ट किया गया है, लेकिन मैं पाइथन के लिए काफी नया हूं और शब्दकोशों को पूरी तरह समझ नहीं पा रहा हूं। क्या मैं एक ऐसे शब्दकोश का उपयोग करने की कोशिश कर रहा हूं जिसमें इसका उपयोग नहीं किया जाना चाहिए, या क्या मुझे एक शब्दकोश का उपयोग करना चाहिए जहां मैं इसका उपयोग नहीं कर रहा हूं? मुझे पता है कि फिक्स शायद बहुत आसान है (यद्यपि मेरे लिए नहीं), और अगर कोई मुझे सही दिशा में इंगित कर सकता है तो मैं बहुत आभारी रहूंगा।
बार फिर, मैं माफी माँगता हूँ अगर इस सवाल पहले से ही उत्तर दिया गया है
धन्यवाद,
क्रिस।
मैं विंडोज 7 64-बिट पर पायथन आईडीई 3.3.1 का उपयोग कर रहा हूं।
इसलिए जब इस भाषा OO है और जब यह प्रक्रियात्मक है याद करने के लिए निराशा होती - क्यों नहीं 'iterable.next()' 'बजाय अगले की (iterable) '? – Basic
@ बासिक: '.next()' हुक विधि है, 'अगला() 'stdlib एपीआई। 'लेन()' बनाम '.__ लेन __()', 'str()' बनाम '.__ str __()', आदि की तरह। पायथन 3 में '.next() 'विधि का नाम बदलकर' .__ अगला __() '; यह एक गलती थी कि इसे एक विशेष विधि का नाम न दें। 'अगला() '(फ़ंक्शन) आपको' स्टॉपइटरेशन 'उठाए जाने पर वापस करने के लिए डिफ़ॉल्ट मान निर्दिष्ट करने देता है। –