我在尋找的是最好的方式來說,'如果這個名單太短,延長到9個元素,並添加'選擇4','選擇5',等等,作爲附加要素。此外,用'選擇x'替換任何'無'元素。'替換「」和0也可以。延伸潛在的不完整名單的最pythonic方式
一個例子轉型是
['a','b',None,'c']
到
['a','b','Choice 3','c','Choice 5','Choice 6','Choice 7','Choice 8','Choice 9']
我最初的代碼被濫用的try/except和有一個差一錯誤,我沒有注意到;感謝joeforker和所有指出它的人。根據該意見,我嘗試了兩種短期的解決方案,測試同樣出色:
def extendChoices(cList):
for i in range(0,9):
try:
if cList[i] is None:
cList[i] = "Choice %d"%(i+1)
except IndexError:
cList.append("Choice %d"%(i+1)
和
def extendChoices(cList):
# Fill in any blank entries
for i, v in enumerate(cList):
cList[i] = v or "Choice %s" % (i+1)
# Extend the list to 9 choices
for j in range(len(cList)+1, 10):
cList.append("Choice %s" % (j))
我覺得#2勝爲更Python,所以它是一個我會用。這很容易理解並使用常見的結構。拆分步驟是合乎邏輯的,並且會讓人更容易理解。
當你回答這個問題,不要讓從選擇0編號的錯誤! – joeforker 2009-02-05 14:35:11
如果一個選項是空字符串「」或0,你想將它顯示給用戶,還是你想要像對待None一樣對待它? – joeforker 2009-02-05 16:04:37