python append()函数是做什么的,具体有什么用

python append()函数是做什么的,具体有什么用,第1张

给Pyhton的列表尾部追加元素,通常会用到append()函数,但是要注意append()函数使用的是浅拷贝。

举个例子:

mylist = []

x = [1, 2, 3]

mylist.append(x)

给空列表mylist追加一个x,此时查看mylist,输出为[[1, 2, 3]],即mylist拥有逗派了一个元素,该元素正是x(列表[1, 2, 3])。

扩展资料

列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。

append() 方法碧升向列表的尾部添加一个新的元素。

列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以 *** 作。extend()方法只接受一个列表作为参山慧贺数,并将该参数的每个元素都添加到原有的列表中。

内置函数append用来将元素追加到slice的后面

参考资料来源:

百度百科——append 命令

Java中的append( )方法其实是创建了一个新的数组,扩大了长度,将需要添加的字符串给复制到这个新的数组中。

JAVA中Stringbuffer有append( )方法:

而Stringbuffer是动态字符串数组,append( )是往动态字符串数组添加,跟“xxxx”+“yyyy”相当‘+’号。

跟String不同的是Stringbuffer是放一起的,String1+String2和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样、

String1+String2 存在于不同的两个地址内存,Stringbuffer1.append(Stringbuffer2)放再一起。

StringBuffer是线程安全的,多用于旦举燃多线程。

扩展资料

查看StringBuffer的append()方法

如图所示代码:

1、进入append方法

@Override

public synchronized StringBuffer append(String str) {

toStringCache = null

super.append(str)

return this

}

其中toStringCache是Cleared whenever the StringBuffer is modified.

2、进入AbstractStringBuilder的append()方法

public AbstractStringBuilder append(String str) {

if (str == null)

return appendNull()

int len = str.length()

ensureCapacityInternal(count + len)

str.getChars(0, len, value, count)

count += len

return this

}

如果参数str为空返回appendNull()该方法最终返回return this.

3、进入ensureCapacityInternal()方法

private void ensureCapacityInternal(int minimumCapacity) {

// overflow-conscious code

if (minimumCapacity - value.length >0) {

value = Arrays.copyOf(value,

newCapacity(minimumCapacity))

}

}

copyOf(char[] original, int newLength)的方法查JDK帮助文档可知:复制指定的数组,复制具有指定的长度。

4、进入String的getChars()方法

public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {//0,len=5,value=[hello],count=5

if (srcBegin <0) {

throw new StringIndexOutOfBoundsException(srcBegin)

}

if (srcEnd >value.length) {

throw new StringIndexOutOfBoundsException(srcEnd)

}

if (srcBegin >srcEnd) {

throw new StringIndexOutOfBoundsException(srcEnd - srcBegin)

}

System.arraycopy(value, srcBegin, dst, dstBegin, srcEnd - srcBegin)

}

5、最终调用的是System.arraycopy的方法:

public static void arraycopy(Object src,

int srcPos,

Object dest,

int destPos,

int length)

/*src - 源数组。

srcPos - 源数组中的起答困始位置。

dest - 目标数组。

destPos - 目的地数据中的起始位置。模虚

length - 要复制的数组元素的数量。

*/

System.arraycopy([world], 0, [hello], 5, 5)

将指定源数组中的数组从指定位置复制到目标数组的指定位置。

参考资料:百度百科-append


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8263543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存