私が見落としている簡単な解決策があると思います。複雑なものよりはましですよね?
簡単に言えば:
var = ['p', 's', 'c', 'x', 'd'].remove('d')
var
のタイプはNone
になります。ここで何が起こっているのですか?
remove
は何も返しません。既存のリストをインプレースで変更します。割り当ては必要ありません。
交換
var = ['p', 's', 'c', 'x', 'd'].remove('d')
と
var = ['p', 's', 'c', 'x', 'd']
var.remove('d')
これで、var
の値は['p', 's', 'c', 'x']
になります。
remove
はリストをインプレースで変更し、None
を返します。それを変数に入れて、それを変更する必要があります。
>>> var = ['p', 's', 'c', 'x', 'd']
>>> var.remove('d') # Notice how it doesn't return anything.
>>> var
['p', 's', 'c', 'x']