2024-04-26 06:59:17 发布
网友
我试图解析一个元组形式:
a=(1,2)
或者
a的情况下,代码是:
x, y = a
b是:
for element in b: x, y = element
有没有一种快速而干净的方法来接受这两种形式?这是在一个MIDI接收回调中 (x是指向要运行的函数的指针,y是要传递给灯光的强度数据)。在
正确的方法是:
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。如果它是你的,那么它是你的第一个。在
如果您确定输入将是元组,则可以使用以下方法:
根据您想做什么,您对“a”情况的处理可以简单到将单个元组绑定到一个较大的元组中,然后在其上调用与“b”实例相同的代码,例如。。。在
b_case = (a_case,)
编辑:正如评论中指出的,一个更好的版本可能是。。。在
from collections import Iterable if isinstance(in_seq[0], Iterable): # ...
正确的方法是:
这基本上是检查输入序列的第一个元素是否是iterable。如果它是你的,那么它是你的第一个。在
如果您确定输入将是元组,则可以使用以下方法:
^{pr2}$根据您想做什么,您对“a”情况的处理可以简单到将单个元组绑定到一个较大的元组中,然后在其上调用与“b”实例相同的代码,例如。。。在
编辑:正如评论中指出的,一个更好的版本可能是。。。在
相关问题 更多 >
编程相关推荐