我試圖將一個類似字串的區間(例如:'1:10')轉換成一個有用的整數區間(例如:1:10)。關鍵是我的方法不起作用。我試著參考字串的區間,但沒有用:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
string_interval = '0:4'
x[string_interval]
期望的輸出:
1, 2, 3, 4, 5。
我還嘗試用int()將string_interval轉換為整數,但也沒有成功。
uj5u.com熱心網友回復:
你可以使用一個切片實體:
>>> x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> string_interval = '0:4'。
>> item = slice(*map(int, string_interval. split(" :"))
>>> x[item] 。
[1, 2, 3, 4]
uj5u.com熱心網友回復:
>>> idx = string_interval.split(': ')
>>> x[int(idx[0]) 。 int(idx[1]) 1]
[1, 2, 3, 4, 5]
在結束的索引上加1,因為Python中的片斷一直到,但不包括結束索引的值。
uj5u.com熱心網友回復:
你可以做一個類似于命令的字串,并對它進行評估。
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
string_interval = '0:4'
x_str = f'x[{string_interval}] ']
x_cmd = eval(x_str)
print(x_cmd) # it is still a list object`。
輸出
[1, 2, 3, 4]
uj5u.com熱心網友回復:
你是否在尋找eval。print(eval('x[%s]' % string_interval)) #[1,2,3,4]
還要注意,你需要string_interval='0:5'來得到[1,2,3,4,5],因為你基本上是給它一個范圍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324432.html
標籤:
