我正在嘗試將字串轉換為串列,只要有括號并且不使用庫。所以像 '[wewr[sfs]]' 這樣的字串應該回傳 ['w','e','w','r',['s','f','s']]。我不是在尋找解決方案,只是對我的代碼有什么問題提供一些指導或建議,到目前為止我得到的結果是 ['w']
def my_function(s):
final_list = []
if d[0] == '[' and d[-1] == ']':
for i in d:
if i == '[':
final_list.append(my_function(d[(d.index('[') 1):(d.rindex(']'))]))
i = d(d.rindex(']') 1)
continue
elif i == ']':
break
else:
final_list.append(i)
return final_list```
uj5u.com熱心網友回復:
你只需要仔細考慮 if-else 條件:
def string_to_list(my_str):
out = []
for s in my_str.split('['):
if ']' in s[:-1]:
s1 = s.split(']')
s1 = [list(s1[0])] list(s1[1])
elif s[-1:] == ']':
s1 = [list(s.strip(']'))]
else:
s1 = list(s)
out.extend(s1)
return out
print(string_to_list('[wewr[sfs]]'))
print(string_to_list('[wewr[sfs]da]'))
print(string_to_list('[wewr[sfs]da[ds]]'))
print(string_to_list('[wewr[sfs]da[ds][dfd]]'))
輸出:
['w', 'e', 'w', 'r', ['s', 'f', 's']]
['w', 'e', 'w', 'r', ['s', 'f', 's'], 'd', 'a']
['w', 'e', 'w', 'r', ['s', 'f', 's'], 'd', 'a', ['d', 's']]
['w', 'e', 'w', 'r', ['s', 'f', 's'], 'd', 'a', ['d', 's'], ['d', 'f', 'd']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/375903.html
