检查列表是否嵌套

时间:2019-08-11 20:20:35

标签: python

有没有办法在不使用任何内置python函数的情况下检查列表是否嵌套?
现在我有:

if type(my_list[0]) == list:
    # other code

我正在处理分配问题,需要检查列表中的元素是否为嵌套列表,但不允许使用type()函数或isinstance()。还有其他人可以在这里使用吗?

4 个答案:

答案 0 :(得分:2)

您可以创建一个函数,尝试对只有列表可以执行的元素执行某些操作。如果失败,则不是列表。所以:

import copy
def check_list(sample_list, index_to_check):
    try:
        new_list = copy.deepcopy(sample_list)
        val = new_list[index_to_check].append('random')
        return True
    except:
        return False

a_list = ['foo', 'baz', ['foo', 'baz']]

print(check_list(a_list, 0))
print(check_list(a_list, 2))

这将返回:

False
True

答案 1 :(得分:1)

如果允许您修改规则,则始终可以检查for (int i = 0; i < 1; i++) { System.out.print(studentList[i]); System.out.println(" "); }属性,该属性表示类实例所属的类,从技术上讲,它不是函数:

__class_

答案 2 :(得分:0)

l = [[], 0, 1, 'string', (1,2), [1,2,3], {}]

def is_list(lst, idx):
    try:
        return lst[idx] * 0 == []
    except:
        return False

print(is_list(l, 0))
print(is_list(l, 1))
print(is_list(l, 2))
print(is_list(l, 3))
print(is_list(l, 4))
print(is_list(l, 5))
print(is_list(l, 6))

打印:

True
False
False
False
False
True
False

答案 3 :(得分:0)

我通过将if语句更改为:

if '[' in str(nestedLis[0]):

其他答案都很好,但是如果有人想知道我如何在不使用单独函数的情况下解决它。