如何将列表(元组内)中的元组转换为列表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将列表(元组内)中的元组转换为列表?相关的知识,希望对你有一定的参考价值。
我环顾四周,找不到任何我认为有用的东西。
我使用的代码如下:
xy = (event.xdata, event.ydata)
a = self.charges.get_charges()
a[self.closest_k][1] = xy
我正在搞乱GUI,我的问题是我需要用光标的位置“移动”GUI上对象的位置。 xy返回我需要作为数组的坐标对,self.closest_k
返回一个数字(有很多对象,self.closest_k
返回我想要移动的对象的索引)。
a = [(1.0, array([ 1., 0.])), (1.0, array([-1., 0.])), (-1.0, array([ 0., -1.])), (-1.0, array([ 0., -1.]))]
问题是元组是不可变的,因为这是一个赋值,所以我不允许更改函数get_charges()
。事先我换了:
a = self.charges.get_charges()
a[self.closest_k][1] = xy
有:
self.charges._pos[self.closest_k, :] = xy
但在进行静态代码分析时,我获得了警告消息MyMplWidget.on_mouse_move: Access to a protected member _pos of a client class
。所以我想问一个解决这个问题的方法,我考虑将元组转换为列表,但是不会将元组中的元组转换为列表。
编辑1:
好的,这是我以前的改进。每当我尝试拖动对象时,运行代码都不会返回错误。这是发生的事情:
[(1.0, array([ 1., 0.])), (1.0, array([-1., 0.])), (-1.0, array([ 0., 1.])), (-1.0, array([ 0., -1.]))]
(-1.0, (-0.00071672257102850523, -1.5525644333591355))
所以,我试图拖动具有原始位置[0,-1]的对象,并且这样做几乎就像创建了列表的新元素一样,它在我拖动时覆盖了原始位置,但是一旦我停止拖动对象恢复其原始位置。
(-1.0, (-0.00071672257102850523, -1.609902239041312))
(-1.0, array([ 0., -1.]))
在那个例子中,我用原始位置[0,-1]拖动对象。一旦我释放了它,它就恢复了原来的位置。 (这实际上并没有在GUI上显示,对象根本不会移动,但这是我可以处理的不同功能的问题)。我认为,关于绘制GUI,我的编码目前的工作方式是处理绘制对象位置的函数,期望其原始位置发生变化。但原始位置有点“锁定”在一个元组内(对于坏的术语而言)。我想我真的不知道该怎么做。
如果我正确理解了这个问题,我认为你应该只是替换整个元素,而不是试图修改内部元组中的一个条目。所以
a[self.closest_k] = (a[self.closest_k][0], xy)
以上是关于如何将列表(元组内)中的元组转换为列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何将元组列表转换为 pandas 数据框,以便每个元组的第一个值代表一列?