0

私は Python の初心者で、解決策を見つけることができなかった短い質問があります。

リストで上書きされるものを規制する方法はありますか? たとえば、ゼロで満たされたリストがあり、それを徐々に他の要素で埋めていきます。できるようにしたいのは、ゼロ以外の何かが上書きされたときにエラーを作成することです。これを行う賢い方法はありますか?

次のようなものを使用できますか:

a = [0, 1, 0, 1, 0, 0, 0, 0]
b = []
[i for i, e in enumerate(a) if e != 0]
return False 

または似たようなものですか?

4

1 に答える 1

2

関数を使用してリスト内の要素を変更できます。これは、要素が であるかどうかを確認します0

def setElement(l, index, element):
    '''Change the element from given list(l) at given index.'''
    if l[index] != 0:
        raise Exception("Attempt to overwrite %s instead of 0" %l[index])
    else:
        l[index] = element

そして今、あなたはそれを呼び出すことでそれを使うことができますsetElement(<list>, <index>, <element>)

 In[1]: a = [0, 0, 0, 0, 0, 0, 0]

 In[2]: setElement(a, 2, 3)

 In[3]: setElement(a, len(a)-1, "Last Element!")

 In[4]: setElement(a, len(a)-1, 53)
Out[4]: Attempt to overwrite "Last Element!" instead of 0

 In[5]: print(a)
Out[5]: [0, 0, 3, 0, 0, 0, "Last Element"]
于 2012-12-01T13:50:13.073 に答える