【Python】文字列 タプルの基本操作 【基本講座】
Pythonの文字列操作でリストに次いで頻繁に使うのがタプルです。リスト同等の操作ができますが、タプルはイミュータブルな点に注意してほしく、値を変える行為はできません。それを念頭に置きながら、基本操作を学んでいきましょう。
文字列操作の基本
タプル tuple の基本操作
単純結合は「+」
タプルの結合は、str型でも行ったのと同じようにできます。
タプル同士を「+」することで結合可能です。
1 2 3 4 5 |
l1=('a','b') l2=('A','B') print(l1+l2) >> ('a', 'b', 'A', 'B') |
次のような、タプル+リスト はエラーが出ます。
1 2 3 4 5 |
t=('a','b') l=[1,'aaa'] print(t+l) >> TypeError: can only concatenate tuple (not "list") to tuple |
また、タプル+str型文字列もエラーが出ます。
1 2 3 4 5 |
l=('a','b') s="AAAAAA" print(l+s) >> TypeError: can only concatenate list (not "str") to tuple |
これらを通すためには、タプル型やstr型をタプル型に変換するしかありません。
1 2 3 4 5 |
t=('a','b') l=[1,'aaa'] print(t+tuple(l)) >> ('a', 'b', 1, 'aaa') |
繰り返しは「*」
これも文字列の時と同じようにできます。
1 2 3 4 5 |
t = ("A", "a") * 5 print(t) >> ('A', 'a', 'A', 'a', 'A', 'a', 'A', 'a', 'A', 'a') |
タプルの要素を取り出すには「:」スライス
これも文字列の時と同じようにできます。
復習程度にいくつか例を挙げます。
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e", "f") print(t[1:3]) # インデックス2から4までの要素を取り出す。 >> ('b', 'c') |
インデックス1から2までの要素を取り出しましたね。
また、スライス前後は省略もできます。
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e") print(t[3:]) # インデックス3から最後までの要素を取り出す。 >> ('d', 'e') |
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e") print(t[:3]) # 先頭から3つの要素を取り出す。 >> ('a', 'b', 'c') |
また、ステップ数を書くことで任意の要素を取り出すことができます。
1 2 3 4 5 |
t= ("a", "b", "c", "d", "e") print(t[::2]) # 先頭から偶数番目の要素を取り出す。 >> ('a', 'c', 'e') |
区切り文字で区切られた文字列をタプルに変換する
split()メソッドを使うと変換できます。文字列の時同様、()デフォルトのときは、空白に対して変換されます。
1 2 3 4 5 6 7 |
s = "A B C" l=s.split() print(tuple(l)) >> ['A', 'B', 'C'] |
タプルの要素を検索する
指定した要素がタプルに存在するかどうかを調べることができます。
in演算子を使います。文字列の時に行ったのと同じです。
しかし、タプルに関しては、find()メソッドは使用できません。
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e") 'a' in t >> True |
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e") print(t.find("a")) >> AttributeError: 'tuple' object has no attribute 'find' |
index()メソッドでインデックスを求める
find()メソッドが使えないので、インデックスを求めることができません。
そこでタプルクラスで与えられているのが、index()メソッドです。
先ほどの例を修正してみましょう。
1 2 3 4 5 |
t = ("a", "b", "c", "d", "e") print(t.index("a")) >> 0 |
インデックスが見つからない場合は、ValueErrorが返ります。
タプルの要素の最大値・最小値・合計を求める
タプルを扱うと時には、最大値や最小値、合計など求めたくなることもあるでしょう。下記で紹介する関数を利用すると簡単に求めれることができます。
max関数
max関数は、タプルの要素の最大値を返します。
1 2 3 4 5 |
t = (1, 2, 3, 4, 5) print(max(l)) >> 5 |
min関数
min関数は、タプルの要素の最小値を返します。
1 2 3 4 5 |
t = (1, 2, 3, 4, 5) print(min(l)) >> 1 |
sum関数
sum関数は、タプルの要素の合計値を返します。
1 2 3 4 5 |
t = (1, 2, 3, 4, 5) print(sum(l)) >> 15 |
エクセル操作と同じような感覚で出来るんじゃないでしょうか?
Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|
独学に限界を感じていませんか?
プログラミング初学者がもっとも陥りやすいのは、挫折です。
なぜ?挫折するのでしょうか?
それは独学だけでは、限界があるからです。
でも、あきらめてはそこで終わりです。
プログラミング言語習得には、メンターと呼ばれる教えてくれる人間が必要です。メンターがいれば、挫折する確率がグンと低くなります。
困ったときに、いつでも教えてくれる先生がいれば心強いと思いませんか?
でも、先生って、学校行く時間もないし、、、そんなこと思っていませんか?
今は、Webでプログラミングが学べる時代なんですよ!
でも、お高いんでしょ?
うーん。これは考え方なのかもしれないんですが、例えば、こう考えてはどうでしょうか?
スクール代金が1コース20万円として、その後、ITエンジニアに就職したら、平均30万円以上は、稼げるのですぐに元が取れますよね?
この数値は、リクナビなど転職サイトを検索すればすぐ出てくる数値です。
今一時の出し渋りにより、一生の賃金を損することになるか、倍以上手に出来るかは、自明ですよね?
でも、どこが良いのかわからない。
そこで、厳選したプログラミングスクールと動画サイトをご紹介いたします。
- TechAcademy [テックアカデミー]※スクールの数が多い!返金制度あり!
- 【WebCampPRO】※WEB系に特化したスクール!返金制度あり!
- 【CodeCamp】※無料体験レッスンを受講すると受講料が1万円OFF!
- Python 3 入門+アメリカのシリコンバレー流コードスタイル
- 【Web開発初心者向け!】Web開発入門完全攻略 充実の18時間コース※動画で学びたい人はこちら!格安もあり!
- フロントエンドエンジニアになりたい人の Webプログラミング入門