1
msg7086 2016-05-27 01:41:57 +08:00 1
第一种需要查找字符串
第二种需要准备一个 Python 编译器环境,准备一个执行虚拟机,然后执行这段代码,获取返回值,再销毁之前创建的各种东西。 |
2
binux 2016-05-27 01:50:48 +08:00
因为,在代码能成功执行之前,它就需要被切成 list 才能被解释器理解。
|
3
SoloCompany 2016-05-27 02:16:31 +08:00
先不说有多奇葩
你真的有验证过第二种方法的执行正确性? |
4
tonyluj 2016-05-27 02:19:06 +08:00
a="'a', 'b', 'c'"
list_a = eval('[' + a + ']') |
5
monkeylyf 2016-05-27 02:55:09 +08:00
你的第二种方法需要给 a, b.. 套上引号. eval 是有安全隐患的, 而且慢. 如果你一定要用的话试试 ast.literal_eval
|
6
ayaseangle 2016-05-27 08:29:15 +08:00 via Android
第二种方法好牛逼。。。
|
7
araraloren 2016-05-27 08:39:54 +08:00
EVAL 这种东西就是很厉害但是不安全。。
|
8
leavic 2016-05-27 12:01:03 +08:00
打死我都想不出第二种写法,太奇葩了。。。。
|
9
hjq98765 OP |
10
Allianzcortex 2016-05-27 15:41:23 +08:00
EVAL ……楼主你这真是开脑洞,方法 1 是官方推荐的方法,次优的方法应该是用工厂函数:
list_a=list(a.replace(',','')) |
11
franklinyu 2016-05-28 08:48:43 +08:00
審查代碼,看到 eval 先說一句 fuck 。另外一樓是正解。
|