listeden içinden bir dict bir alt kümesini Çıkarma:yüzden genellikle böyle bir şey yapmak bir dict içinden bir listenin kavşak kaldırmak için, bu bir örnekle açıklamak gerçekten sadece kolay
a = {1:'', 2:'', 3:'', 4:''}
exclusion = [3, 4, 5]
# have to build up a new list or the iteration breaks
toRemove = []
for var in a.iterkeys():
if var in exclusion:
toRemove.append(var)
for var in toRemove:
del a[var]
Bu sıradışı bir örnek gibi görünebilir, ancak böyle bir şey yapmak zorunda olduğum zamanların sayısı şaşırtıcıdır. Bunu setlerle yapmak çok daha hoş olurdu, ama ben açıkça dict için 'değerlerini' korumak istiyorum.
Bu yöntem rahatsız edici çünkü iki döngü ve ek bir dizi gerektirir. Bunu yapmanın daha temiz ve daha verimli bir yolu var mı?
Bu benim cevabımdan çok daha iyi. – SpoonMeiser
güzel ipucu, dict.pop unutuldu. – camflan
None yerine herhangi bir değeri kullanabilirsiniz: silme = [d.pop (k, 0) 'in hariç tutulması için] – jfs