- 在线时间
- 155 小时
- 最后登录
- 2013-4-28
- 注册时间
- 2012-5-7
- 听众数
- 5
- 收听数
- 0
- 能力
- 2 分
- 体力
- 2333 点
- 威望
- 0 点
- 阅读权限
- 50
- 积分
- 913
- 相册
- 1
- 日志
- 26
- 记录
- 52
- 帖子
- 291
- 主题
- 102
- 精华
- 0
- 分享
- 6
- 好友
- 84
升级   78.25% TA的每日心情 | 开心 2013-4-28 12:11 |
|---|
签到天数: 160 天 [LV.7]常住居民III
 群组: 数学软件学习 |
python list之append和extend的区别
% `8 j I1 H$ S! N4 G T7 S5 D: k0 e分类: python 2011-06-28 16:53 1477人阅读 评论(1) 收藏 举报
1 a6 m: {% ~* `" r1 X' [2 O6 g* N; f; i* o6 o* F; Q' k7 `# m8 L
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
: k- P3 p) L) L* m5 R9 d W9 A& M
! f$ Y5 e' J1 `' i9 O# l1 Q2. append() 方法向列表的尾部添加一个新的元素。, C8 o. D0 K; z
, ?* y% F( P, h5 ^( t1 o3. 列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。0 [4 U+ Y9 q+ k9 ~7 `& Y
3 i) ~. O! V6 X' C+ q/ D# |- n
( p/ m: U% ^$ S( L
& v9 u6 X# [6 ^7 gextend的解释没看太明白,琢磨了一下
/ b: X y" k3 q8 F/ y! t2 L
( E! ^3 J4 v* o9 w- z
9 m$ | ]) q2 j
0 m! B% }( E y) i0 D9 p6 v/ Q& E>>> myList = [1,2.0,'a']
5 D. G1 P2 {% j! R+ Y>>> myList
% g$ S+ q P, @[1, 2.0, 'a']) }6 Z. Q5 r. U
>>> myList.append('APP')
3 r0 k4 ~# e7 x$ A>>> myList
% m9 H# y+ ^2 ^5 H- e- Y[1, 2.0, 'a', 'APP']2 D) D/ n) t% q+ K8 E9 m: ]9 i
>>> myList.extend([123,'abc'])8 T0 ~; R9 Z' J9 Q
>>> myList
5 \: s. r& F* H+ J e$ m, S[1, 2.0, 'a', 'APP', 123, 'abc']
6 Z- m4 z- Q2 B" }8 _7 Y>>> myList.append(1,2)9 d' D; [' r2 i) w e. V- @+ h
Traceback (most recent call last):9 Y+ G+ `; U, a, T" q/ r/ V6 _
File "<pyshell#69>", line 1, in <module>
1 J+ x; H S! N3 a myList.append(1,2)
- I5 n) N f0 o: J9 H8 C( d+ R, yTypeError: append() takes exactly one argument (2 given)
1 R( @0 u! N2 {8 L3 h0 w- a>>> myList.extend([1],[2])
' u1 O$ h, X7 Y4 }) kTraceback (most recent call last):
$ h4 S0 d$ o, G# i/ a$ Z9 ` File "<pyshell#70>", line 1, in <module>
9 C2 u2 m( e( E6 f6 o/ A" n3 t myList.extend([1],[2])2 t- }2 T, s5 E9 G9 Y4 k; N/ d
TypeError: extend() takes exactly one argument (2 given)
% v' o3 @1 O4 s' h& |>>>
5 b7 P2 o/ H& W5 T3 _1 B' r ?
4 v+ X2 i1 Y( G9 A- b2 X
, o. w/ ~& i S$ D$ Y: P
结果如下:
2 c" Y' ]9 n6 F8 y2 k
5 i* M; s% L0 |0 I+ Tappend和extend都仅只可以接收一个参数,+ f; U& C, \( N
2 ^/ f: M7 P" ]' v5 s& h: _& B$ m
append 任意,甚至是tuple
# y" w! i7 } T. e1 _! }
5 F: I: I6 p; h* S) r; j& Bextend 只能是一个列表,其实上面已经说清楚了,是自己没看明白。 |
zan
|