'NoneType'对象不可订阅?

时间:2013-09-18 07:52:13

标签: python python-3.x 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'对象不可订阅”错误。我做错了什么?

6 个答案:

答案 0 :(得分:10)

print()函数返回None。您正在尝试索引无。你不能,因为'NoneType' object is not subscriptable

[0]放在括号内。现在你要打印所有内容,而不仅仅是第一个术语。

答案 1 :(得分:9)

[0]需要在)内。

答案 2 :(得分:1)

不要使用list作为变量名称,因为它会影响内置。

并且无需确定列表的长度。只是迭代它。

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

只是一个附录:查看内部列表的内容,我认为它们可能是错误的数据结构。看起来你想要使用字典。

答案 3 :(得分:1)

A点:不要使用list作为变量名 B点:你不需要[0]只是

print(list[x])

答案 4 :(得分:0)

索引,例如[0]应该在印刷品内部出现......

答案 5 :(得分:0)

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)