如下代码:
1 | a = [[]] * 3 |
从上面结果看,[[]] * 3确实是创建了一个 [[], [], []]的空列表,但是我们在赋值的时候就会出现以下出乎意料的情况:
1 | a[0].append(1) |
探究其原因是因为使用乘号*复制时,只是复制了索引,即复制的n个索引都指向同一个物理地址,所以在操作其中任何一个时,都会同时修改其他内容。同理列表中多个空字典也是同样的问题。
优雅的解决这个问题(借助列表推导式):
1 | >>> a = [[] for i in range(3)] |
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true