我目前有一个名为TrackedPoints的列表,其中包含元组,我可以在调试器中以元组的形式查看要存储在其中的值
TrackedPoints:[(350,350),(543,345)]
我目前正在使用此代码提取我想要的元组
StartLineX = [TrackedPoints[0] for x in TrackedPoints]
这会将StartLineX设置为[(350,350)]
如何将StartLineX转换为元组?我使用过tuple()函数,但它会不断返回这样的数据,这会在我的应用程序中引发异常:
(((350,350),)
任何帮助将不胜感激。
答案 0 :(得分:1)
import numpy as np
HANDLED_FUNCTIONS = {}
class NpContainer:
def __init__(self, val):
self.val = val
def __array__(self):
return np.array(self.val)
def __array_function__(self, func, types, args, kwargs):
if func not in HANDLED_FUNCTIONS:
raise NotImplementedError()
return HANDLED_FUNCTIONS[func](*args, **kwargs)
def __array_ufunc__(self, ufunc, method, *args, **kwargs):
if ufunc not in HANDLED_FUNCTIONS:
raise NotImplementedError()
return HANDLED_FUNCTIONS[ufunc](*args, **kwargs)
def implements(np_function):
def decorator(func):
HANDLED_FUNCTIONS[np_function] = func
return func
return decorator
@implements(np.add)
def sum(a, **kwargs):
return 'Sum Val: {}'.format(np.sum(a.val, **kwargs))
@implements(np.log)
def log(a, **kwargs):
return 'Log Val: {}'.format(np.log(a.val, **kwargs))
if __name__ == "__main__":
container1 = NpContainer(val=np.array([1., 2.]))
log_result = np.log(container1)
print(log_result)
print(type(log_result))
sum_result = np.sum(container1)
print(sum_result)
print(type(sum_result))
:括号之间的部分称为 List Comprehension 。这将创建另一个列表。
您想要的是从列表中获取第一个元素:
StartLineX = [TrackedPoints[0] for x in TrackedPoints]
。
如果StartLineX = TrackedPoints[0]
列表为空,这将失败。
TrackedPoints