小编She*_*hen的帖子

如何深层复制列表?

我对List副本有一些问题:

所以我E0来之后'get_edge',我E0打电话给我'E0_copy = list(E0)'.在这里,我想E0_copy是的深层副本E0,和我通E0_copy'karger(E)'.但在主要功能.
为什么'print E0[1:10]'for循环之前的结果与for循环之后的结果不一样?

以下是我的代码:

def get_graph():
    f=open('kargerMinCut.txt')
    G={}
    for line in f:
        ints = [int(x) for x in line.split()]
        G[ints[0]]=ints[1:len(ints)]
    return G

def get_edge(G):
    E=[]
    for i in range(1,201):
        for v in G[i]:
            if v>i:
                E.append([i,v])
    print id(E)
    return E

def karger(E):
    import random
    count=200 
    while 1:
        if count == 2:
            break
        edge = random.randint(0,len(E)-1)
        v0=E[edge][0]
        v1=E[edge][1]                   
        E.pop(edge)
        if …
Run Code Online (Sandbox Code Playgroud)

python copy list deep-copy

111
推荐指数
5
解决办法
19万
查看次数

为什么我必须使用close()来关闭文件?

我正在学习一些文件功能,因此有疑问.

我很好奇为什么有必要打电话close()来关闭文件?如果我close()在读/写文件后没有打电话,会发生什么事情?如果我打电话close(),我仍然可以使用文件描述符吗?

c operating-system

7
推荐指数
1
解决办法
7901
查看次数

指针malloc失败

我试图定义一个包含节点*next的节点结构.我编写了一个append(node* n?函数来在前​​一个节点旁边添加一个新节点,但是每次运行代码时,它都会给我一个seg错误.我的代码如下:

#include<stdlib.h>
#include<stdio.h>


typedef struct _log_t {
  struct _log_t* next;
}log_t;

void initi(log_t* l) {
  l = (log_t*)malloc(sizeof(log_t));
  l -> next = NULL;
}

void append(log_t* l){
  l->next = (log_t*)malloc(sizeof(log_t)); 
  l->next->next = NULL;
  l = l->next;
}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

c malloc pointers

1
推荐指数
1
解决办法
173
查看次数

标签 统计

c ×2

copy ×1

deep-copy ×1

list ×1

malloc ×1

operating-system ×1

pointers ×1

python ×1