解析python平面和嵌套列表/元组

2024-04-26 06:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解析一个元组形式:

a=(1,2)

或者

^{pr2}$

a的情况下,代码是:

x, y = a

b是:

for element in b:
    x, y = element

有没有一种快速而干净的方法来接受这两种形式?这是在一个MIDI接收回调中 (x是指向要运行的函数的指针,y是要传递给灯光的强度数据)。在


Tags: 方法函数代码infor情况element形式
2条回答

正确的方法是:

a = ((1,2),) # note the difference
b = ((1,2), (3,4), ...)

for pointer, intensity in a:
   pass # here you do what you want
# If your input is in in_seq...
if hasattr(in_seq[0], "__iter__"):
    # b case
else:
    # a case

这基本上是检查输入序列的第一个元素是否是iterable。如果它是你的,那么它是你的第一个。在

如果您确定输入将是元组,则可以使用以下方法:

^{pr2}$

根据您想做什么,您对“a”情况的处理可以简单到将单个元组绑定到一个较大的元组中,然后在其上调用与“b”实例相同的代码,例如。。。在

b_case = (a_case,)

编辑:正如评论中指出的,一个更好的版本可能是。。。在

from collections import Iterable
if isinstance(in_seq[0], Iterable):
    # ...

相关问题 更多 >