Python 元组访问问题?
Python tuple access issue?
我正在使用 python pyparsing 库,其输出似乎是元组。但是,当尝试作为元组访问时,我得到了意想不到的结果。
>>> from pyparsing import *
>>> aaa = (Literal('xxx') + SkipTo(':') + Literal(':')('::') + Word(nums)('eee')).parseString('xxx : 123')
>>> aaa
(['xxx', '', ':', '123'], {'eee': [('123', 3)], '::': [(':', 2)]})
奇怪的是:
>>> aaa[0]
'xxx'
>>> aaa[1]
''
我希望 aaa[0]
成为列表:
['xxx', '', ':', '123']
和 aaa[1] - 字典:
{'eee': [('123', 3)], '::': [(':', 2)]}
为什么我会遇到意外?这里发生了什么?谢谢。
Python 有一些很好的内省能力。要确定是什么东西,请问它
>>>type(aaa)
<class 'pyparsing.ParseResults'>
你能用它做什么,方法和属性
>>>dir(aaa)
['::', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'eee']
我看到它有一个 get 方法所以
for each in aaa:
type(each), each, len(each)
<type 'str'>
for each in aaa:
type(each), each, len(each)
(<type 'str'>, 'xxx', 3)
(<type 'str'>, '', 0)
(<type 'str'>, ':', 1)
(<type 'str'>, '123', 3)
现在是时候阅读文档了
我会注意到您使用 pyparsing 方法创建了 xxx 和其他这些东西,因此您可以询问它们是什么以及键入(文字)并了解它们的内部魔法目录(文字)有时答案不是很有帮助, 但通常你不会通过询问来破坏任何东西。
最重要的是,aaa 似乎不是元组,我注意到它有一些方法与元组的方法相同,但它没有元组的所有方法。
我正在使用 python pyparsing 库,其输出似乎是元组。但是,当尝试作为元组访问时,我得到了意想不到的结果。
>>> from pyparsing import *
>>> aaa = (Literal('xxx') + SkipTo(':') + Literal(':')('::') + Word(nums)('eee')).parseString('xxx : 123')
>>> aaa
(['xxx', '', ':', '123'], {'eee': [('123', 3)], '::': [(':', 2)]})
奇怪的是:
>>> aaa[0]
'xxx'
>>> aaa[1]
''
我希望 aaa[0]
成为列表:
['xxx', '', ':', '123']
和 aaa[1] - 字典:
{'eee': [('123', 3)], '::': [(':', 2)]}
为什么我会遇到意外?这里发生了什么?谢谢。
Python 有一些很好的内省能力。要确定是什么东西,请问它
>>>type(aaa)
<class 'pyparsing.ParseResults'>
你能用它做什么,方法和属性
>>>dir(aaa)
['::', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'eee']
我看到它有一个 get 方法所以
for each in aaa:
type(each), each, len(each)
<type 'str'>
for each in aaa:
type(each), each, len(each)
(<type 'str'>, 'xxx', 3)
(<type 'str'>, '', 0)
(<type 'str'>, ':', 1)
(<type 'str'>, '123', 3)
现在是时候阅读文档了
我会注意到您使用 pyparsing 方法创建了 xxx 和其他这些东西,因此您可以询问它们是什么以及键入(文字)并了解它们的内部魔法目录(文字)有时答案不是很有帮助, 但通常你不会通过询问来破坏任何东西。
最重要的是,aaa 似乎不是元组,我注意到它有一些方法与元组的方法相同,但它没有元组的所有方法。