首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中赋值,数组

在Python中赋值,数组
EN

Stack Overflow用户
提问于 2014-07-23 17:38:14
回答 1查看 3.2K关注 0票数 0

我正在创建一个随机值数组,这样我就可以进行不同的排序,并查看它们是如何交互的。问题是,当我在数组上调用一个排序时,我不能再次使用该数组,因为它已经被排序了。我只是不明白python是如何处理作业的。在我看来,这就像是将一个数组分配给另一个数组共享一个内存地址。有人能不能请您在python中如何分配数组,并向我解释为什么我的代码不能工作。

这里是我称之为插入排序的地方。目标是使insertion_sort_array正确排序,而random_test_array_10保持未排序。

代码语言:javascript
复制
for i in random_array_10:
print i

time.sleep(2)

print "Insertion Sort"

with timer.Timer() as t:
    insertion_sort_array = sorts.insertion_sort(random_array_10).isort()

print t.interval

for i in random_array_10:
   print i

下面是插入排序类

代码语言:javascript
复制
class insertion_sort():

    def __init__(self, array):
        self.array = array

    def isort(self):
        for i in range(1, len(self.array)):
            temp = self.array[i]
            k = i
            while k > 0 and temp < self.array[k-1]:
                self.array[k] = self.array[k-1]
                k = k-1
            self.array[k] = temp
        return self.array
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 17:40:54

self.arrayarray都指向同一个对象(相同的可变列表)。要复制列表,可以在list()中使用__init__构造函数

代码语言:javascript
复制
self.array = list(array)

作为一个优点,它允许任何其他可迭代作为插入排序的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24917245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档