列表包含列表(矩阵)作为输入()与python 3

时间:2017-11-14 10:19:27

标签: python-3.x

我尝试将给定输入转换为包含列表的列表,如下面的命令行代码所示:

 <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]]

显然,这段代码需要工作,但我无法用列表理解来解决这个问题。

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)