gpt4 book ai didi

Python 元组访问问题?

转载 作者:行者123 更新时间:2023-11-30 23:03:01 26 4
gpt4 key购买 nike

我正在使用 python pyparsing libary,其输出似乎是元组。然而,当尝试作为元组访问时,我得到了意想不到的结果。

>>> 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 具有一些强大的内省(introspection)能力。要确定某物是什么,请询问它

>>>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 元组访问问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com