আমি পাইথন অভিধানে একটি প্রবেশের কীটি পরিবর্তন করতে চাই।
এটি করার কোনও সরল উপায় আছে?
আমি পাইথন অভিধানে একটি প্রবেশের কীটি পরিবর্তন করতে চাই।
এটি করার কোনও সরল উপায় আছে?
উত্তর:
সহজেই 2 টি পদক্ষেপে সম্পন্ন:
dictionary[new_key] = dictionary[old_key]
del dictionary[old_key]
বা 1 পদক্ষেপে:
dictionary[new_key] = dictionary.pop(old_key)
অপরিশোধিত KeyError
থাকলে যা উত্থাপন করবে dictionary[old_key]
। মনে রাখবেন এটি মুছে ফেলবেdictionary[old_key]
।
>>> dictionary = { 1: 'one', 2:'two', 3:'three' }
>>> dictionary['ONE'] = dictionary.pop(1)
>>> dictionary
{2: 'two', 3: 'three', 'ONE': 'one'}
>>> dictionary['ONE'] = dictionary.pop(1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 1
dict[new_value] = dict.pop(old_value, some_default_value)
এড়াতে ব্যবহার করতে পারবেন
old_key
থেকে পৃথক হবে new_key
।
আপনি যদি সমস্ত কীগুলি পরিবর্তন করতে চান:
d = {'x':1, 'y':2, 'z':3}
d1 = {'x':'a', 'y':'b', 'z':'c'}
In [10]: dict((d1[key], value) for (key, value) in d.items())
Out[10]: {'a': 1, 'b': 2, 'c': 3}
যদি আপনি একক কী পরিবর্তন করতে চান: উপরের যে কোনও পরামর্শের সাথে আপনি যেতে পারেন।
{ d1[key] : value for key, value in d.items() }
পাইথন ২.7 এবং উচ্চতর ক্ষেত্রে আপনি অভিধানের বোধগম্যতা ব্যবহার করতে পারেন: ডিকট্রিডার ব্যবহার করে সিএসভি পড়ার সময় এটির একটি উদাহরণ আমি পেয়েছি। ব্যবহারকারীর সমস্ত কলামের নাম ':' দিয়ে প্রত্যাহার করা হয়েছিল
ori_dict = {'key1:' : 1, 'key2:' : 2, 'key3:' : 3}
কীগুলিতে ':' অনুসরণ করে পরিত্রাণ পেতে:
corrected_dict = { k.replace(':', ''): v for k, v in ori_dict.items() }
যেহেতু কীগুলি হ'ল অভিধানগুলি মূল্যবোধগুলির জন্য ব্যবহার করে তাই আপনি এগুলি সত্যিই পরিবর্তন করতে পারবেন না। আপনি যে নিকটতম জিনিসটি করতে পারেন তা হ'ল পুরানো কীটির সাথে সম্পর্কিত মানটি সংরক্ষণ করা, মুছুন, তারপরে প্রতিস্থাপন কী এবং সংরক্ষিত মান সহ একটি নতুন এন্ট্রি যুক্ত করুন। অন্যান্য উত্তরগুলির বেশ কয়েকটি বিভিন্নভাবে এটি সম্পাদন করা যেতে পারে rate
অভিধানে সমস্ত কী রূপান্তর করতে
মনে করুন এটি আপনার অভিধান:
>>> sample = {'person-id': '3', 'person-name': 'Bob'}
নমুনা অভিধান কীতে সমস্ত ড্যাশকে আন্ডারস্কোরগুলিতে রূপান্তর করতে:
>>> sample = {key.replace('-', '_'): sample.pop(key) for key in sample.keys()}
>>> sample
>>> {'person_id': '3', 'person_name': 'Bob'}
d = {1:2,3:4}
ধরা যাক আমরা তালিকার উপাদানগুলির পি = ['a', 'বি'] তে কীগুলি পরিবর্তন করতে চাই। নিম্নলিখিত কোডটি করবে:
d=dict(zip(p,list(d.values())))
এবং আমরা পেতে
{'a': 2, 'b': 4}
আপনি একই মানটি অনেক কীগুলির সাথে সংযুক্ত করতে পারেন, বা কেবল একটি কী মুছে ফেলতে পারেন এবং একই মানটির সাথে একটি নতুন কী পুনরায় যুক্ত করতে পারেন।
উদাহরণস্বরূপ, আপনার কী-> মানগুলি থাকলে:
red->1
blue->2
green->4
আপনি যুক্ত purple->2
বা অপসারণ red->1
এবং যোগ করতে পারবেন না এমন কোনও কারণ নেইorange->1
একবারে সমস্ত কী পরিবর্তন করার ক্ষেত্রে। এখানে আমি চাবি স্টেমিং করছি।
a = {'making' : 1, 'jumping' : 2, 'climbing' : 1, 'running' : 2}
b = {ps.stem(w) : a[w] for w in a.keys()}
print(b)
>>> {'climb': 1, 'jump': 2, 'make': 1, 'run': 2} #output
আমি এই সঠিক উত্তরটি দেখিনি:
dict['key'] = value
এমনকি বৈশিষ্ট্যগুলিকে আপত্তি জানাতেও এটি করতে পারেন। এটি করে তাদের অভিধানে পরিণত করুন:
dict = vars(obj)
তারপরে আপনি কোনও অভিধানের মতো অবজেক্টের বৈশিষ্ট্যগুলি পরিচালনা করতে পারেন:
dict['attribute'] = value