更改二维数组中的值之一?

时间:2019-01-23 19:39:12

标签: arrays python-3.x replace

我正在尝试创建一个链表(抽象数据类型),我需要替换2D数组中的一个元素。

参数x是我的数据,p是我的指针。我无法弄清楚如何获取列表中一个元素的索引(从底部开始的第三行):[['b',1),('n',2)]我尝试使用.index(1 ),但找不到它,因为我必须以这种方式搜索它:.index('b',1),但是一旦我追加了元素,我就不知道'b'只有数字!我需要这个索引来替换数组中的一个值(我似乎也无法使它工作)(这是最后一行)。

class Linked_list():
    def __init__(self):
        self.Linkedlist = [('b',1),('n',2)]
        self.Index = int

    def InsertionE(self,x,p):
            self.Index = self.Linkedlist.index(p)                                                               
            self.Linkedlist[Index].replace(self.Linkedlist[:,len(self.Linkedlist)])

总而言之,我的问题是:

1如何在2d数组中搜索1个元素的一部分?和

2如何替换2d数组中1个元素的一部分?

1 个答案:

答案 0 :(得分:0)

以0到10的比例来衡量您在这里的混乱程度,我认为是11。 建议您看看数据模型中的item-retrieval-setting方法-https://docs.python.org/3/reference/datamodel.html#emulating-container-types

然后,阅读有关collections.abc的一些信息,并实现从collections.MutableSequence继承的类-如果序列将满足您的需要-https://docs.python.org/3/library/collections.abc.html

在交互式控制台中播放。当您熟悉它时,看看PEP-8上的编码样式建议也不错-像Linked_list这样的类名实例包含名为LinkedList的属性将使大多数Pythonista用户眼睛流血-这可能是没人照顾您的原因。 -https://www.python.org/dev/peps/pep-0008/

所有这些,我仍然无法弄清楚您要做什么-总体而言,是使用“链表”,还是专门使用InsertionE方法。

“链表”的概念本身在需要手动控制对象的内存处理的语言中很有意义。 Pyhton“列表”对象虽然没有链表的效率足以涵盖链表的大多数用例,但是对于alogrithms而言,它需要在列表的中间插入很多插入物。然后,可以通过实现“ collections.abc.MutableSequence”接口并使用“ Node”类来保存对上一个/下一个对象的引用,从而轻松地在Python中创建“链接列表”数据结构。

此外,对于实际的2D数据类型,使用Python的numpy外部库可能会更好。从头开始实现的任何东西都无法在该项目的性能和可靠性上达到甚至接近(当然,除非您有足够的资源来匹配30多年的数值计算优化)

所有这些,对于这个代码,我仍然可以说的是,您正在尝试使用的列表中的te .index方法很显然要在您的数据结构中查找“行地址”-因此,它将无法通过列表包含的元组的第一个元素找到任何内容。但是我真的无法通过您在该问题中的描述和代码来弄清楚应该做什么,除了“暂停,多学习一些语言,重新开始”以外,没有提供任何建议。抱歉。

但是,也许您可​​能会视自己的工作状况而定,dict也可以为您服务-如果需要,请在重做所有内容之前检查dict的可能性。