所以我使用copy.copy复制,这是浅的,但如果我改变一个值,另一个值不会改变.
import copy
a=[1,2,3,4,5]
b=copy.copy(a)
print id(a[0])==id(b[0])
Run Code Online (Sandbox Code Playgroud)
现在我得到输出为真.因为[0]和b [0]的地址是相同的,如果我改变一个的值,另一个也必须改变.
b[0]=55
print[a]
print[b]
Run Code Online (Sandbox Code Playgroud)
输出:
[1,2,3,4,5]
[55,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
那为什么会那样?
字符串始终由两个不同的交替字符组成.例如,如果字符串的两个不同字符是x和y,那么t可以是xyxyx或yxyxy但不是xxyy或xyyx.
但a.matches()总是返回false并且输出变为0.帮助我理解这里有什么问题.
public static int check(String a) {
char on = a.charAt(0);
char to = a.charAt(1);
if(on != to) {
if(a.matches("["+on+"("+to+""+on+")*]|["+to+"("+on+""+to+")*]")) {
return a.length();
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)