如何遍历指定嵌套列表并访问其中的int类型值?
嵌套列表的遍历与整数数值访问方法
给定嵌套列表:
occurence_list = [["sleep", ["morning_meds", 2], ["watching_tv", 3]], ["morning_meds", ["sleep", 1], ["watching_tv", 3]]]
1. 遍历该嵌套列表
针对这个列表的结构(每个外层元素包含1个主事件字符串,以及多个[关联事件, 次数]子列表),用嵌套循环就能完成遍历:
for entry in occurence_list: # 提取当前主事件 main_event = entry[0] print(f"主事件:{main_event}") # 遍历后续的关联事件子列表 for related_entry in entry[1:]: related_event, count = related_entry print(f"关联事件:{related_event},出现次数:{count}")
如果需要处理更复杂的多层嵌套结构,也可以用递归函数:
def traverse_nested_list(lst): for element in lst: if isinstance(element, list): traverse_nested_list(element) else: print(element) traverse_nested_list(occurence_list)
2. 访问列表中的整数类型数值
方法一:通过索引直接定位
明确数值所在的层级位置后,用索引逐层访问:
# 获取第一个主事件(sleep)下第一个关联事件的数值 count_1 = occurence_list[0][1][1] print(count_1) # 输出:2 # 获取第二个主事件(morning_meds)下第二个关联事件的数值 count_2 = occurence_list[1][2][1] print(count_2) # 输出:3
方法二:遍历收集所有整数数值
如果需要提取列表中所有整数,可以结合遍历和类型判断:
all_integers = [] for entry in occurence_list: for related_entry in entry[1:]: # 直接提取子列表的第二个元素(已知是整数) all_integers.append(related_entry[1]) # 通用版:通过类型判断筛选所有整数 all_integers = [] def collect_integers(lst): for element in lst: if isinstance(element, list): collect_integers(element) elif isinstance(element, int): all_integers.append(element) collect_integers(occurence_list) print(all_integers) # 输出:[2, 3, 1, 3]
内容的提问来源于stack exchange,提问作者Labarbona Dibaggio
相关产品推荐
相关产品推荐

