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


def printer(lst):
    print ("Available Lists:")
    for x in range(len(lst)):
        print (lst[x])[0]

当我尝试运行时,此代码返回“'NoneType' 对象不可下标”错误

printer(MASTERLIST)

我做错了什么?

4

6 回答 6

20

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

[0]括号放在里面。现在您正在打印所有内容,而不仅仅是第一个学期。

于 2013-09-18T08:00:06.127 回答
14

[0]需要在).

于 2013-09-18T07:54:57.963 回答
2

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

并且不需要确定列表的长度。只需迭代它。

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

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

于 2013-09-18T08:24:53.583 回答
2

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

print(list[x])
于 2016-10-24T22:25:03.533 回答
1

索引例如 [0] 应该出现在打​​印内部...

于 2017-03-25T12:48:54.140 回答
1
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)
于 2017-03-25T12:54:58.250 回答