我有以下字符串: 列表= [[1],[ '苹果',2],[3],[4],[5],[6],[7]]如何从Python中的字符串中提取子列表?
如何能我提取的子列表如下: s1 = [1] s2 = ['apple',2] ... s7 = [7] ?
谢谢你的帮助。
我有以下字符串: 列表= [[1],[ '苹果',2],[3],[4],[5],[6],[7]]如何从Python中的字符串中提取子列表?
如何能我提取的子列表如下: s1 = [1] s2 = ['apple',2] ... s7 = [7] ?
谢谢你的帮助。
如果要创建7个变量s1
到s7
,最直接的方法是直接分配。
s1 = List[0]
S2 = List[1]
...
S7 = List[6]
第二种方法是将所有赋值放在一行上并让python解开列表,如@Lafada所述。
第三种方法是使用exec
,这对更大数量的变量可能更具可扩展性,尽管所有这些独立名称的值而不是原始列表对我而言并不清楚。
L = [[1], ['apple', 2], [3], [4], [5], [6], [7]]
for i in xrange(7):
exec("s%d = L[%d]" % ((i+1), i))
更新:基于OP的评论,他开始用字符串。在我们首先使用ast.literal_eval
将字符串转换为列表之后,可以使用每种方法。
import ast
List = "[[1], ['apple', 2], [3], [4], [5], [6], [7]]"
L = ast.literal_eval(List)
我很抱歉,我必须纠正我的问题。原始列表(这里是List)是一个字符串,所以s1 = List [0]给了我'['。其实我想将这个字符串转换为7个列表。 – 2015-02-23 04:27:43
@PouyaKh请[edit]你的问题来澄清你想要的 – MattDMo 2015-02-23 04:28:32
你必须使用拆包
>>> L = [[1], ['apple', 2], [3], [4], [5], [6], [7]]
>>> s1, s2, s3, s4, s5, s6, s7 = L
>>> s1
[1]
>>> s2
['apple', 2]
>>> s7
[7]
我很抱歉,我必须改正我的问题。原始列表(这里是List)是一个字符串,所以s1 = List [0]给了我'['。其实我想将这个字符串转换为7个列表。 – 2015-02-23 04:30:38
尼斯和pythonic +1 – 2015-02-23 04:32:16
@PouyaKh,你会编辑你的答案与你的清单范例吗? – Nilesh 2015-02-23 04:33:15
只要你可以尝试以下。
s = []
s[:7] = List
试试这个代码
List=[[1], ['apple', 2], [3], [4], [5], [6], [7]]
output=""
for list_index in range(len(List)):
output+="s%s = %s "%(list_index,List[list_index])
print output
嗨。你说“列表到字符串”。你真的想让变量s1 ... s7具有字符串值吗?另外,你是否需要实际的变量?你有多个不同大小的列表,或者只有一个列表? – markw 2015-02-23 04:14:42
我很抱歉,我必须纠正我的问题。原始列表(这里是List)是一个字符串,所以s1 = List [0]给了我'['。其实我想将这个字符串转换为7个列表。 – 2015-02-23 04:28:26
查看我的答案更新。 – merlin2011 2015-02-23 04:33:39