web-dev-qa-db-ja.com

「NoneType」オブジェクトは添え字付けできませんか?

_list1 = ["name1", "info1", 10]
list2 = ["name2", "info2", 30]
list3 = ["name3", "info3", 50]
MASTERLIST = [list1, list2, list3]


def printer(list):
    print ("Available Lists:")
    listlen = (len(list))
    for x in range(listlen):
        print (list[x])[0]
_

printer(MASTERLIST)を実行しようとすると、このコードは「 'NoneType' object is not subscriptable」エラーを返します。私は何を間違えましたか?

14
user2786555

print()関数はNoneを返します。インデックスを作成しようとしています。なし。 'NoneType' object is not subscriptable

置く [0]括弧内。今では、最初の用語だけでなく、すべてを印刷しています。

11
TerryA

[0])内にある必要があります。

9
Ethan Furman

listを変数名として使用しないでください。ビルトインをシャドウします。

また、リストの長さを決定する必要はありません。繰り返します。

def printer(data):
    for element in data:
        print(element[0])

補遺:内部リストの内容を見ると、データ構造が間違っている可能性があると思います。代わりに辞書を使いたいようです。

1
Matthias

ポイントA:変数名としてリストを使用しないポイントB:[0]だけは必要ありません

print(list[x])
1
Cam92

インデックス付け[0]印刷物の内側に配置する必要があります...

0
Reizz
list1 = ["name1", "info1", 10]
list2 = ["name2", "info2", 30]
list3 = ["name3", "info3", 50]

def printer(*lists):
    for _list in lists:
        for ele in _list:
            print(ele, end = ", ")
        print()

printer(list1, list2, list3)
0
Joshua Nixon