鉴于在Python中:
element = element + [0]
Run Code Online (Sandbox Code Playgroud)
应该等于:
element += [0]
Run Code Online (Sandbox Code Playgroud)
为什么要修改列表而另一个没有?这是一个例子:
>>> a = [[0, 0], [0,0]]
>>> for element in a:
... element = element + [0]
...
>>> a
[[0, 0], [0, 0]]
Run Code Online (Sandbox Code Playgroud)
a未被修改.但如果我增加:
>>> a = [[0, 0], [0,0]]
>>> for element in a:
... element += [0]
...
>>> a
[[0, 0, 0], [0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
a被修改.
谢谢,弗兰克
为什么这会评估为字符串类型:
>>> strng = 'spam'
>>> type(strng.replace('a', 'A'))
>>> <type 'str'>
Run Code Online (Sandbox Code Playgroud)
但是这个评估类型为NoneType?
>>> list_a = ['spam']
>>> type(list_a.append('eggs'))
>>> <type 'NoneType'>
Run Code Online (Sandbox Code Playgroud) 我可以使用free()一点帮助.
当我运行以下内容时:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char *mystring = malloc(6 * sizeof(char));
strcpy(mystring, "Hello");
printf("%p\n", mystring);
printf("%s\n", mystring);
free(mystring);
printf("%p\n", mystring);
printf("%d\n", *mystring);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
0x8f46008
Hello
0x8f46008
0
Run Code Online (Sandbox Code Playgroud)
free()用零替换内存中的字符串'Hello'吗?
注意:这仅用于学术目的.我永远不会引用释放的记忆.
谢谢,弗兰克