2016-01-24 102 views
1

我知道,你可以從一個字符串使用split函數創建一個數字的列表:如何使用range()從字符串中創建數字列表?

let Items = '1,3,5,7' 
let MyList = split(Items, ',') 
echo MyList --> [1,3,5,7] 

,但我怎樣才能使使用range()串號的列表?

這不起作用(尾隨字符錯誤):

let Items = '1,100,2' 
let MyList = range(eval(Items)) 
echo MyList --> trailing characters error 

回答

4

eval(Items)沒有任何意義。你可能想要一些東西:

:let Items='1,100,2' 
:let MyList=split(Items,',') 
echo range(MyList[0],MyList[1],MyList[2]) 
+0

哇。和煦。謝謝 – Reman

1

要使用eval你必須有一個字符串表示(「包含」)一個完整的表達式。如果你想用你的Items字符串作爲參數傳遞給range功能,那麼你可以將字符串代表range調用並評估它像這樣:

let Items = '1,100,2' 
let MyList = eval('range(' . Items . ')') 

我不認爲這是一個偉大的想法去做這樣,但這是可能的。

evalstring做了相反的列表和字典,所以使用split(Items)獲得列表的替代方法是eval('[' . Items . ']')。但是拆分字符串似乎更容易,也更安全。

相關問題