x = WAIT100MS
subroutines = ["WAIT"+str(range(1,256))+"MS"]
if x in subroutines:
print "success"
else:
print "invalid"
我試圖創建一塊地方,如果WAITXMS
是1
和255
之間,它將被接受的代碼,否則不會。 範圍()函數只是生成列表,所以我想我將能夠使用的Python:使用範圍()與「」。加入()
" ".join("WAIT"+str(range(1,256))+"MS")
,
與像x
字符串結束。 但是使用join()
功能與range()
似乎並不像我所期望的那樣工作,而是給我一個像"WAIT[1,2,3,4,...]MS"
一樣正常的列表。我該怎麼辦?
想想事情發生的順序。您生成範圍,然後將其變成一個字符串,然後嘗試進行連接。事情沒有秩序。 –
mgilson的答案將解決眼前的問題,但實際上,你應該在這裏使用正則表達式。 –
你是否真的需要這個'list'用於除了檢查'if in子程序'以外的任何目的?如果是這樣,那麼Mark Ransom已經解釋了這個問題,並通過mgilson解決了這個問題。如果不是,那麼(a)它比'list'更好,並且(b)最好不要明確地生成它,可能使用某種形式的字符串處理,並且NPE提供了一個很好的解。 – abarnert