'iteritems', 'iterkeys' and 'itervalues' in dict
Apolgies for not putting the subject line in my last email. In the Boost.Python dict class there are methods 'iteritems', 'iterkeys' and 'itervalues' all returning objects. How exactly are you supposed to use these objects (iterators) ? ___________________________________________________________ Inbox full of spam? Get leading spam protection and 1GB storage with All New Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html
I am new to boost.python but this is something that worked for me, Is there a more simple way to manage dicts and key/value pairs in the dict? void CPyFormat::Add( boost::python::dict& rdictValues ) { gd_std::wstring stringKey, stringValue; boost::python::object objectKey, objectValue; const boost::python::object objectKeys = rdictValues.iterkeys(); const boost::python::object objectValues = rdictValues.itervalues(); unsigned long ulCount = boost::python::extract<unsigned long>(rdictValues.attr("__len__")()); for( unsigned long u = 0; u < ulCount; u++ ) { objectKey = objectKeys.attr( "next" )(); objectValue = objectValues.attr( "next" )(); char chCheckKey = objectKey.ptr()->ob_type->tp_name[0]; // simple check if( chCheckKey != 's' && chCheckKey != 'u' ) throw std::runtime_error( "Unknown key type" ); if( chCheckKey == 's' ) stringKey = boost::python::extract<const char*>(objectKey); else stringKey = boost::python::extract<std::wstring>(objectKey); char chCheckValue = objectValue.ptr()->ob_type->tp_name[0]; // simple check if( chCheckValue != 's' && chCheckValue != 'u' ) throw std::runtime_error( "Unknown value type" ); if( chCheckValue == 's' ) stringValue = boost::python::extract<const char*>(objectValue); else stringValue = boost::python::extract<std::wstring>(objectValue); m_vectorProperties.push_back( std::pair<std::wstring,std::wstring>( stringKey.c_str(), stringValue.c_str() ) ); } } Nindi Singh wrote:
Apolgies for not putting the subject line in my last email.
In the Boost.Python dict class there are methods 'iteritems', 'iterkeys' and 'itervalues' all returning objects. How exactly are you supposed to use these objects (iterators) ?
___________________________________________________________ Inbox full of spam? Get leading spam protection and 1GB storage with All New Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html _______________________________________________ C++-sig mailing list C++-sig@python.org http://mail.python.org/mailman/listinfo/c++-sig
-- View this message in context: http://www.nabble.com/-C%2B%2B-sig--%27iteritems%27%2C-%27iterkeys%27-and-%2... Sent from the Python - c++-sig mailing list archive at Nabble.com.
participants (2)
-
Nindi Singh -
Per Ghosh