我尝试将给定输入转换为包含列表的列表,如下面的命令行代码所示:
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/index.js"></script>
期望的输出:
<head>
<title>My App</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
'self'; img-src https://*; child-src 'none';">
<link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="css/slick.css" />
<link rel="stylesheet" type="text/css" href="js/slick-theme.css"/>
<link rel="stylesheet" href="themes/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="css/jquery.mobile.structure-1.4.5.min.css" />
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.4.5.min.js"></script>
<script type="text/javascript" src="js/jquery-migrate-1.2.1.min"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="js/network.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/slick.min.js"></script>
</head>
尝试
matrix = input('asking')
asking[[2, 0, 4],[1, 2, 4],[4, 4, 2]]
matrix
'[[2, 0, 4],[1, 2, 4],[4, 4, 2]]'
代码:
[[2,0,4],[1,2,4],[4,4,2]]
显然,这段代码需要工作,但我无法用列表理解来解决这个问题。
答案 0 :(得分:2)
使用json loads()
方法:
matrix = '[[2, 0, 4],[1, 2, 4],[4, 4, 2]]'
matrix = json.loads(matrix)
type(matrix)
<type 'list'>
如果您想检查输入中的错误,可以将其包装在try-except中:
try:
matrix = json.loads(matrix)
except ValueError:
#code goes here
答案 1 :(得分:0)
json.loads
的替代方案是ast.literal_eval
。它具有以下优点:即使它是无效的JSON,它也能识别Python语法,就像单引号字符串一样。在您的确切情况下,它没有什么区别:
import ast
matrix = '[[2, 0, 4],[1, 2, 4],[4, 4, 2]]'
matrix = ast.literal_eval(matrix)