我正在下面的代碼:的Python 3 - 查找其列表索引包含一個特定的字符串作爲一個子
def findLine(prog, target):
for l in range(0, len(prog)-1):
progX = prog[l].split()
for i in range(0, len(progX)):
if progX[i] == target:
a = progX[i]
...但我需要發現的一種方式,其前衛的索引包含一個。這個程序的一個例子是輸入:
findLine([ '10 GOTO 20','20 END'], '20')
本身應更好地解釋的問題比自己:
定義一個函數findLine (prog,target)執行以下操作。假設prog是一個包含BASIC程序的字符串列表,如getBASIC()生成的類型;假設target是一個包含行號的字符串,該行號是GOTO語句的目標。該函數應該返回索引i(0和len(prog)-1之間的數字),這樣prog [i]是其標籤等於目標的行。
樣品輸入/輸出:如果調用 findLine([ '10 GOTO 20', '20 END'], '10') 則輸出應該是0,因爲該列表的項目0是與線標籤10.
那麼,如何找到第一個包含ans作爲子串的索引?預先感謝您的幫助。
謝謝,先生。 – Dan 2013-04-04 20:21:22
你也可以使用'line.startswith(target)'而不是'line.split()[0] == target' – gonz 2013-04-04 20:26:09
@gonz - 我想過這個,但我不知道BASIC以及它是如何處理的聲明標籤。我看到的'startswith'的問題是:1)我不知道標籤前是否有空白,2)在100行中搜索10將返回True ... – mgilson 2013-04-04 20:33:10