33
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Python】appendとextendでよく間違えるところ

Last updated at Posted at 2019-04-19

リストの追加でよく間違えるので、整理していきます。

append()メソッドとは

引数に渡された値をリストの末尾に渡します。

test1.py
>>> my_list = [1, 2, 3]
>>> my_list.append(4)
>>> my_list
[1, 2, 3, 4]

extend()メソッドとは

引数に渡された別のリストを追加してリストを拡張します。

test2.py
>>> my_list = [1, 2, 3]
>>> my_list.extend([4])
>>> mylist
[1, 2, 3, 4]

間違えるケース①

  • リストを拡張したいのに、appendでリストを渡してしまう。

test3.py
# 自分がしたいこと
>>> my_list = [1, 2, 3]
>>> my_list.extend([4, 5])
>>> my_list
[1, 2, 3, 4, 5]


# appendを使ってしまい、一つの要素として追加してしまう
>>> my_list = [1, 2, 3]
>>> my_list.append([4, 5])
>>> my_list
[1, 2, 3, [4, 5]]

間違えるケース②

  • extendで要素を渡して、エラーを起こす。

test4.py
>>> my_list = [1, 2, 3]
>>> my_list.append(4)
>>> my_list
例外が発生しました: TypeError
'int' object is not iterable
  File "C:\Users\...\test3.py", line 2, in <module>
    my_list.extend(4)

間違えるケース③

  • 文字列の場合、appendで追加するが、extendだと一文字ずつ追加される。

test5.py
#自分がしたいこと
>>> my_list2 = ['dog', 'cat']
>>> my_list2.append('bat')
>>> my_list2
['dog', 'cat', 'bat']

#上記をextendと間違える
>>> my_list2 = ['dog', 'cat']
>>> my_list2.extend('bat')
>>> my_list2
['dog', 'cat', 'b', 'a', 't']

以上

この記事が自分の初投稿となります。
記事の内容で、おかしな所や訂正箇所があれば、
ご指摘いただければ修正していきます。

コメント頂ければ、幸いです。

33
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?