我有以下字符串: List = [[1],['apple',2],[3],[4],[5],[6],[7]]
如何提取子列表如下: s1 = [1] s2 = ['apple',2] ... s7 = [7] ?
感谢您的帮助。
答案 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个名为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)
答案 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