我有以下字符串: 列表= [[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