اذهب إلى المحتوى
  • 0

بايثون حذف مجموعة المفاتيح المعرفة داخل قائمة من القاموس

سارة خليل

السؤال

Recommended Posts

  • 0

نقوم بالمرور على المفاتيح التي نريد حذفها ونستخدم del key لحذف المفتاح من القاموس.

mydict = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
print(mydict)

keytoremove = ['one' , 'two']

for k in keytoremove:
	del mydict[k]
    
print(mydict)

ناتج أول طباعة:

{'one': 1, 'two': 2, 'three': 3, 'four': 4}

الثانية:

{'three': 3, 'four': 4}

عليك تعديل البرنامج ليعمل كما تريدين بعد تأكدك من فهم الفكرة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هناك عدة طرق للوصول إلى ما تريد:

  • إنشاء دالة تقوم بذلك بهذا الشكل:
def del_all(mapping, to_remove):
      for key in to_remove:
          del mapping[key]

ثم نستخدمها:

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

def del_all(mapping, to_remove):
      for key in to_remove:
          del mapping[key]
        
del_all(sampleDict, keysToRemove) 
print(sampleDict)
  • إستعمال:
all(sampleDict.pop(k) for k in keysToRemove)

بهذا الشكل:

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

all(sampleDict.pop(k) for k in keysToRemove)
print(sampleDict)
  • إستعمال:
all(map(sampleDict.pop, keysToRemove))

بهذا الشكل:

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

all(map(sampleDict.pop, keysToRemove))
print(sampleDict)
  • إستعمال:
list(map(sampleDict.pop, keysToRemove))

بهذا الشكل:

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

list(map(sampleDict.pop, keysToRemove))
print(sampleDict)
  • إستعمال Dict Comprehensions:
finalDict = {key: sampleDict[key] for key in sampleDict if key not in keysToRemove}

بهذا الشكل:

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

finalDict = {key: sampleDict[key] for key in sampleDict if key not in keysToRemove}
print(finalDict)

و كلها تعطي نفس الخرج.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • -1

يمكنك استخدام 

sampleDict.pop(key)

 

لحذف أي key من داخل القاموس بهذا الشكل 

sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}
sampleDict.pop("name")
print(sampleDict)

أو يمكنك استخدام 

del sampleDict[key]
sampleDict = {
  "name": "kelly",
  "age": 25,
  "salary": 80000,
  "city" : "New yourk"
}
del sampleDict['name']
print(sampleDict)

أو كالتالي لحذف أكثر من مفتاح مرة واحدة 

sampleDict = {
    "name": "kelly",
    "age": 25,
    "salary": 80000,
    "city" : "New yourk"
}

keysToRemove = ['name' , 'salary']

for key in keysToRemove:
	del sampleDict[key]
    
print(sampleDict)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...