子衿沉夜
这是应该做你想做的事情的代码。我包含了该函数的两个版本,一个是为了清楚起见,另一个是更小但功能相同。##################### Create a list of lists / elements#####################x = [[1,2,3],[3,4],[3,4,[3,4,5],[4],[5,4,6]],[4,3,4,5,[[[6]]]]]x = [[], [[[[], []], [[]], []]], [[]]]############################################################# First implementation (included for clarity)############################################################def get_len_lists(this_list): # Set number of elements to 0 num_elem = 0 # Loop through each element in the list... for elem in this_list: # .. if it's a list... if type(elem) == list: # ... if the list is empty, count that as an element if elem == list(): # ... so add one num_elem += 1 else: # ... get the number of elements... num_elem += get_len_lists(elem) + 1 # ... otherwise... else: # ... just add one to the length of the list num_elem += 1 # Return the number of elements in the list return num_elem ############################################################# Smaller implementation############################################################def get_len_lists_2(this_list): # Set number of elements to 0 num_elem = 0 # Loop through each element in the list... for elem in this_list: # We add one for each level, regardless of whether it is an element or a list num_elem += 1 # If it's a list... if type(elem) == list: # .. get the number of elements in the list num_elem += get_len_lists(elem) # Return the number of elements in the list return num_elem result1 = get_len_lists(x) + 1result2 = get_len_lists_2(x) + 1print(result1)print(result2)输出是:1212