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

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

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

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

Q&A

1回答

967閲覧

基礎的なリストの使い方がわかりません。

mmmmkkai

総合スコア0

Python

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

0グッド

0クリップ

投稿2021/10/17 08:50

前提・実現したいこと

10個の整数をリストとして間にスペースを空けて、一度に入力し、一旦リストに格納した後で、逆順に画面に出力するプログラムを作成。入力した整数は以下のようにすれば分割できる(入力した文字列全体を s, 数値に変換した後のリスト名を numbersとした場合)
という指定のもとプログラミングがうまくいかないです。

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

TypeError: 'list' object is not callable

該当のソースコード

s = "10 20 30 40 50 60 70 80 90 100"

items = s.split()
numbers = [ int(x) for x in items]

numbers.reverse()

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

Zuishin

2021/10/17 08:52

お前また新しいアカウント作ったのか。
mmmmkkai

2021/10/17 09:21

初めてだと思うんですけど…
meg_

2021/10/17 10:08

> という指定のもとプログラミングがうまくいかない。 何かの課題ですか?問題文がとても分かりにくいのですが、原文ままですか?
meg_

2021/10/17 10:10

質問のコードで提示のエラー(TypeError: 'list' object is not callable)は出ないと思いますが、何か特殊なことされてますか?
guest

回答1

0

発生しているエラーメッセージは、list という変数を宣言してしまうと発生します。
該当のソースコードにはお示しいただいていないですが、下記コードで再現します。

cmd

1$ python 2>>> s = "10 20 30 40 50 60 70 80 90 100" 3>>> list = [] 4>>> list(s) 5Traceback (most recent call last): 6 File "<stdin>", line 1, in <module> 7TypeError: 'list' object is not callable

インタプリタを抜けるか、del を利用することで解消されます。

cmd

1(続き) 2>>> del list 3>>> list(s) 4['1', '0', ' ', '2', '0', ' ', '3', '0', ' ', '4', '0', ' ', '5', '0', ' ', '6', '0', ' ', '7', '0', ' ', '8', '0', ' ', '9', '0', ' ', '1', '0', '0']

投稿2021/10/17 10:33

nemoplus

総合スコア161

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

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

dameo

2021/10/18 15:55

低評価したのは私ではありませんが、一点だけ補足させてください。 変数の名前は関係ありません。 例えば、以下のようにすると... >>> numbers = [1] >>> numbers[0] # 配列のようにアクセスできる 1 >>> numbers(0) # これを間違えて以下のように書いた場合 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable >>> numbersという変数名でも同じエラーを出すことが出来ます。 誤解させてしまうかもしれませんが、間違いというほどではないと思っています。
nemoplus

2021/10/19 08:16

ご指摘ありがとうございます。 プログラムやインタプリタのどこかで list を変数として宣言してしまい、 その後 list関数を使おうとしたら動作しない、というミスは python を始めた当初によくやらかした失敗でしたので… --- >>> list = [1,2,3,4,5] >>> numbers = list("1 2 3 4 5") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'list' object is not callable --- 質問からは list 関数を利用した形跡が見られないですが、 ソースコードでは問題がないので回答させていただきました。
dameo

2021/10/19 09:19 編集

うっかりlistという変数を作って、組み込み関数のlist(※)を上書きしてしまうということですね。 それは最初から分かっているのですが、エラーの意味は、「list型のオブジェクトは(関数のように)呼ぶことはできません」という意味なので、上書きしたかどうかは関係ないということです。 xxxx()のxxxxがlist型だったのかどうかが問題で、例えば(こんな間違いはないと思いますが) >>> list((1,2,3)) [1, 2, 3] >>> list=(1,2,3) >>> list((1,2,3)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object is not callable >>> のように間違えばリストではなくタプルオブジェクトは関数のように呼べませんというエラーになります。質問者さんのエラーケースが不明である以上、上書きに限定する意味がないということですね。 ※ https://docs.python.org/ja/3/library/functions.html#func-list
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問