Python中嵌套列表(list of lists)内用前序年份值替换0的实现
嵌套列表年份值替换解决方案
没问题,针对你给出的Names嵌套列表,我们可以通过简单的遍历逻辑,轻松把年份列(索引7)为0的元素替换成前一个子列表的年份值。下面是具体的实现方式:
核心思路
- 从列表的第二个子元素开始遍历(第一个元素没有前置元素,不需要处理)
- 逐个检查每个子列表的第8个元素(索引为7)
- 如果该元素值为0,就用前一个子列表对应位置的年份值来覆盖它
代码实现
Names = [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration', 1745], ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA', '', 1742], ['Burke', 'Aedanus', '1743-06-16', 'M', 'rep', 'SC', '', 0]] # 从索引1开始遍历,因为索引0没有前一个元素 for idx in range(1, len(Names)): current_year = Names[idx][7] if current_year == 0: # 替换为前一个子列表的年份值 Names[idx][7] = Names[idx-1][7] # 验证结果 print(Names)
运行结果
执行这段代码后,Names列表会被更新为:
[['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration', 1745], ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA', '', 1742], ['Burke', 'Aedanus', '1743-06-16', 'M', 'rep', 'SC', '', 1742]]
可以看到第三个子列表里的0已经被成功替换成了前一个子列表的1742,完全符合你的需求。
内容的提问来源于stack exchange,提问作者MJP
相关产品推荐
相关产品推荐

