質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

5696閲覧

リストの変数名にどちらを選ぶか (lst, arr)

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/06/04 07:01

編集2019/06/04 07:23

質問

Pythonの初心者、中級者向けの書籍を何冊か並行して読んでいるのですが、短いテストコードでのリストの変数名として、"arr", "lst"の2つがよく使われています。

どちらも和訳すれば「配列」の意味になるかと思いますが、自分で使うならどちらがよいのでしょうか?
もし好みの問題なのであれば、皆さんならばどちらを変数名として選びますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

2

型の呼称に対応させるのが誤解が少ないように思います。

  • 組み込みリスト ⇒ lst
  • numpy.ndarray ⇒ arr
  • arrayオブジェクト ⇒ arr

しかしこれはメタ構文変数としての命名に留まるべきで、
コードを組む際に気にすることはあまり無い筈です。システムハンガリアンでも採用しない限り。

arrayとlistは同じ?

どちらも和訳すれば「配列」の意味

arrayとlistはある程度使い分けられています。
配列と訳されるのは前者で、後者はそのままリストと呼ばれることが多いです。

次のQAのraccyさんの回答が非常に勉強になります。

###array

元々はarray data structure(配列データ構造)の意味で使われていました。つまり、arrayと言った場合はデータ構造そのものを示すと場合があることです。ただ、ここから転じてそのデータ構造で実装されているオブジェクトに対する型やクラスもarrayと呼ぶようになっています。

[中略]

###list

listはarrayと違ってデータ構造ではなく、順序づけられた集合というものそのものになります。そのため、言語によっては実装によって複数用意されている場合があります。例えばJavaでは、ArrayList、LinkedList、CopyOnWriteArrayList等です。そして、arrayはlistの一種であるとも言えます。

引用元teratail - なぜPythonでは配列をリストと呼ぶのでしょう?

しかし、厳密に差を意識しない場面も多いです。

**『Pythonの[...]は配列じゃない!リストだ!』**と強硬に主張している人を見たら、
**『CPythonでは可変長配列として実装されているよ』**とばっさりと切り落としてやって下さい。


参考

投稿2019/06/04 07:37

編集2019/06/04 07:54
LouiS0616

総合スコア35676

tiitoi👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/06/04 07:58

有益な資料を教えてくださってありがとうございます。 サンプルコードにspam, ham, eggsが度々出てくるのに理由があったとは思いませんでした
guest

1

ベストアンサー

その変数が何であるかで名前をつけます。

studentsとか
accountsとか
files_sorted_by_name_in_ascendingとか

数学など、純粋にリスト/配列でいい場合には
型が何なのかで決めます。(np.arrayのくせにlstと言う名前だと混乱するので。)
さらにリストと配列の区別すら要らなければxsとかysレベルまで抽象化することもあります。

参考書のコードが"広い"名前なのは、リストなら何でもいいという意図を込めてます。
実際のコードで「リストだよ!」とだけ言われても嬉しくないので
それは何なのかに基づいた名前をつけます。

名前付けとかその他諸々に関しては
リーダブルコードというど定番の書籍があるので読みましょう。

投稿2019/06/04 07:38

編集2019/06/04 08:08
ozwk

総合スコア13553

退会済みユーザー👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/06/04 08:06 編集

@ozwk さん filesSortedByNameInAscendingについて。 PEP8にも『Function names should be lowercase, with words separated by underscores as necessary to improve readability. Variable names follow the same convention as function names.』と書かれており、snake_caseでの命名がより相応しいように思います。 本旨に直接関係の無い無粋なコメントですみません。
ozwk

2019/06/04 08:06

ありがとうございます いろんな言語またぐと どの言語がなんだったか忘れるので助かります
guest

1

生成だけならListやTupleが速いです。
Numpyのarrayは生成は遅いけど、アクセスが圧倒的に速いです。
なんどもアクセスする場合はNumpyがいいです。
Listの要素にはなんどもアクセスするようなコードを書かないです。

投稿2019/06/04 07:11

ices_sinon

総合スコア479

退会済みユーザー👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/06/04 07:19

変数名の名前付けの話かと
退会済みユーザー

退会済みユーザー

2019/06/04 07:20

質問の書き方が曖昧でした。 リストの「変数名」として選ぶなら、2つのうちどちらが良いかというのが質問の意図です。 Numpyのarrayについて解説してくださったのに申し訳ありません。
ices_sinon

2019/06/04 07:20

すみません勘違いしていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問