如何从Python中的字符串中提取子列表?

时间:2015-02-23 04:07:34

标签: python list

我有以下字符串: List = [[1],['apple',2],[3],[4],[5],[6],[7]]

如何提取子列表如下: s1 = [1] s2 = ['apple',2] ... s7 = [7] ?

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

你必须使用解包

>>> L = [[1], ['apple', 2], [3], [4], [5], [6], [7]]
>>> s1, s2, s3, s4, s5, s6, s7 = L
>>> s1
[1]
>>> s2
['apple', 2]
>>> s7
[7]

答案 1 :(得分:3)

如果要创建7个名为s1s7的变量,最简单的方法是直接分配。

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)

答案 2 :(得分:2)

您可以尝试下面的内容。

s = []
s[:7] = List

答案 3 :(得分:1)

试试此代码

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