Codecademy项目中Python列表元素重复问题求助
问题分析与解决
你的问题出在嵌套循环的追加位置错误:
- 原代码中,内部
for data_point in transaction循环的每一次迭代,都会把还没处理完的transaction_clean添加到transactions_clean里。比如一个transaction有3个data_point,就会连续3次添加同一个列表(每次列表里的元素逐渐增加),最终导致transactions_clean里充满重复的中间状态列表。
修正后的代码
transactions_clean = [] for transaction in daily_transactions_split: transaction_clean = [] for data_point in transaction: transaction_clean.append(data_point.replace("\n", "").strip(" ")) # 把这行移出内部循环,等当前transaction的所有data_point处理完再添加 transactions_clean.append(transaction_clean)
关键说明
- 要确保只有当当前
transaction的所有数据点都处理完成,得到完整的transaction_clean后,再将其添加到transactions_clean中,而不是在处理每个数据点时就添加一次。 - 你说对照视频解决方案没发现差异,大概率是漏看了缩进——视频里的
transactions_clean.append(transaction_clean)应该是和内部for循环同级,而不是嵌套在内部循环里。
内容的提问来源于stack exchange,提问作者timneji
相关产品推荐
相关产品推荐

