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

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

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

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

Q&A

解決済

1回答

15856閲覧

nonetype object is not subscriptable

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

0グッド

0クリップ

投稿2019/03/27 14:06

python

1>>> def w(coords): 2... n=[] 3... for v in combinations(coords,2): 4... try: 5... a=(v[0][1]-v[1][1])/(v[0][0]-v[1][0]) 6... b=-a*v[0][0]+v[0][1] 7... except ZeroDivisionError: 8... (a,b)=Counter(n).most_common()[0][0] 9... if type(abs(b)/sqrt(a**2+1)): 10... n.append( abs(b)/sqrt(a**2+1)) 11... else: 12... n.append( round(abs(b)/sqrt(a**2+1),2)) 13 return Counter(n).most_common().sort()[0][0]

上記のプログラムでタイトルのようなエラーがでました。何故ですか?

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

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

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

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

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

tachikoma

2019/03/27 14:08

エラーが発生した前後のスタックトレースを省略せずに記載してください。
退会済みユーザー

退会済みユーザー

2019/03/27 14:11

>>> w([(2,12),(23,34),(12,34)]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 13, in w TypeError: 'NoneType' object is not subscriptable です
hayataka2049

2019/03/27 20:19

本筋とは関係ありませんが、shellの対話環境だとしたらこの行数を打ち込むのはきついので他の方法でコーディングした方が・・・
退会済みユーザー

退会済みユーザー

2019/03/29 09:33 編集

anaconda タイピングはATOMです。
hayataka2049

2019/03/29 09:33

実際はコマンドプロンプトかもしれないしターミナルかもしれないけど、>>>や...が出ていることから、対話環境で打ち込んでいることがわかります。だるいのでスクリプトを作ってそこに書いた方が良いのでは? というコメントです。
退会済みユーザー

退会済みユーザー

2019/03/29 09:37

なるほど、参考にします
guest

回答1

0

ベストアンサー

list.sort() 関数は、リストをソートする関数ですが、ソートしたリストを返したりはしません。(つまり、返り値 None)
そのため、list.sort()[0] などのように添え字操作を行おうとすると、NoneType は subscriptable ではないとエラーになります。

python

1lst = [1, 3, -4] 2# lst.sort()[1] # TypeError: 'NoneType' object is not subscriptable 3 4ret = lst.sort() 5print(ret) # None 6print(lst) # [-4, 1, 3]

sort() ではなく、sorted() を使ってみてはどうでしょうか。

diff

1- Counter(n).most_common().sort()[0][0] 2+ sorted(Counter(n).most_common())[0][0]

投稿2019/03/27 14:13

編集2019/03/27 14:14
tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問