python中append 、+ 和extend的区别

当我我们在使用List的扩展操作时候,常常会用到append方法和+运算符,不注意他们之间的区别常常会导致错误,下面举例说明他们的错误

1)append:

s1 = [1,2,3]
s2 = [4]
s1.append(s2)
s1.append({'1':'2'})
print(s1)

输出如下

[1,2,3,[4],{'1':'2'}]
  1. 使用append相当把整个s2当做List中的元素的内容,相当于把[s2]添加到了s1中。如果用print(s1.append(s2))输出的为None;用test =s1.append(s2)在print(s2)得到还是None,因为append操作是在原List上的修改,不会返回一个新的值
  2. append 操作可以向List中添加任何元素,比如字典,不过字典整体作为List中的一个元素(比如上面字典的{})

2)+运算:

s1 = [1,2,3]
s2 = [4]
print(s1+s2)

结果如下

[1,2,3,4]

+运算是对于两个类型相同的变量之间的运算,不改变原有的变量,并返回一个新的值,是内容之间的拼接

3)extend:

s1 = [1,2,3]
s2 = [4]
s1.extend(s2)
print(s1)
s3 = 'abc'
s1.extend(s3))
print(s1)
s4 = {'age':12,'height':180}
s1.extend(s4)
print(s1)

输出如下:

[1, 2, 3, 4]
[1, 2, 3, 4, 'a', 'b', 'c']
[1, 2, 3, 4, 'a', 'b', 'c', 'height', 'age']

extend 也是在原有List上进行修改,没有返回值,可以扩展不同类型的变量,并将其内容以List变量的形式加入到原List中。
从输出中可见如果extend的是字符串,则字符串会被拆分成字符数组,如果extend的是字典,则字典的key会被加入到List中

你可能感兴趣的:(python中append 、+ 和extend的区别)