如何创建由多个元组组成的变量,而不是由元组组成的元组?

问题描述 投票:0回答:1

我正在编写应给出两个坐标x和y的曼德尔序列的代码

Point = Tuple[float, float]
def mandel_seq(x: float, y: float, n: int = 100) -> Sequence[Point]:
    (u_0, v_0) = (0.0, 0.0)
    (u_n,v_n) = (x+u_0**2-v_0**2,y + 2*u_0*v_0)
    bound = 0
    smallest_reached=False
    result_seq = (u_0,v_0) + (u_n, v_n)
    lst = []
    while smallest_reached==False and bound < n:
        (u_n, v_n) = (x + u_n ** 2 - v_n ** 2, y + 2 * u_n * v_n)
        bound = bound + 1
        result_seq = result_seq + (u_n,v_n)
        if u_n**2 + v_n**2 > 4:
            smallest_reached = True
            for i in range(0, 8, 2):
                lst.append((result_seq[i:i + 2]))
            result_seq = tuple(lst)
    return [result_seq]

mandel_seq(1,0)应该给出:[[(0.0,0.0),(1.0,0.0),(2.0,0.0),(5.0,0.0)]但给出[[((0.0,0.0),(1.0,0.0) ),(2.0,0.0),(5.0,0.0))]

我不确定如何整合在顶部定义的Point变量以使输出正确。我无法更改返回的内容。它必须是[result_seq]

python github pycharm tuples
1个回答
0
投票
return list(result_seq)

它将把您的元组转换成一个列表,而不是将它作为唯一的项目包含在列表中。顺便说一句,为什么您将列表全部转换为元组:result_seq = tuple(lst) ??


0
投票

在您的return语句中,而不是返回[result_seq]而不是返回List(result_seq)

[在使用[]时,您将结果插入到列表中,如果使用List(),则将元组转换为列表,而当您说想要这种格式时,这可能就是要实现的目标[[ ),(),(),()]代替[[((),(),())]

© www.soinside.com 2019 - 2024. All rights reserved.