আমি এটি থেকে পেতে চাই:
keys = [1,2,3]
এটি:
{1: None, 2: None, 3: None}
এটি করার একটি অজগর উপায় আছে?
এটি এটি করার একটি কুশ্রী উপায়:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
আমি এটি থেকে পেতে চাই:
keys = [1,2,3]
এটি:
{1: None, 2: None, 3: None}
এটি করার একটি অজগর উপায় আছে?
এটি এটি করার একটি কুশ্রী উপায়:
>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}
উত্তর:
dict.fromkeys([1, 2, 3, 4])
এটি আসলে একটি শ্রেণিবদ্ধ, সুতরাং এটি ডিক-সাবক্লাসগুলির collections.defaultdictজন্যও (যেমন ) কাজ করে। Alচ্ছিক দ্বিতীয় তর্কটি কীগুলির জন্য ব্যবহারের মান নির্দিষ্ট করে (এতে ডিফল্ট None)
{k:[] for k in [1, 2, 3]}করা এখনও নিরাপদ।
কেউ ডিক-বোধগম্য সমাধান দেয়ার কোন যত্ন নেননি?
>>> keys = [1,2,3,5,6,7]
>>> {key: None for key in keys}
{1: None, 2: None, 3: None, 5: None, 6: None, 7: None}
False) নির্ধারণ করতে দেয় ।
dict.fromkeys(keys, None)
dict.fromkeys(keys, [])
>>> keyDict = {"a","b","c","d"}
>>> dict([(key, []) for key in keyDict])
আউটপুট:
{'a': [], 'c': [], 'b': [], 'd': []}
keyDictবিভ্রান্তিমূলক, যেমন কোডের প্রথম লাইনটি a set, একটি নয় dict।
ইন অনেক কর্মপ্রবাহ যেখানে আপনি নির্বিচারে কী জন্য একটি ডিফল্ট / প্রাথমিক মান সংযুক্ত করতে চান, আপনি না প্রয়োজন হ্যাশ প্রতিটি চাবি স্বতন্ত্রভাবে এগিয়ে সময়। আপনি ব্যবহার করতে পারেন collections.defaultdict। উদাহরণ স্বরূপ:
from collections import defaultdict
d = defaultdict(lambda: None)
print(d[1]) # None
print(d[2]) # None
print(d[3]) # None
এটি আরও দক্ষ, এটি তাত্ক্ষণিক সময়ে আপনার সমস্ত কীগুলি হ্যাশ করে সংরক্ষণ করে। তদুপরি, defaultdictএটি একটি সাবক্লাস dict, তাই সাধারণত কোনও নিয়মিত অভিধানে ফিরে রূপান্তর করার প্রয়োজন হয় না।
ওয়ার্কফ্লোগুলির জন্য যেখানে আপনার অনুমতিযোগ্য কীগুলিতে নিয়ন্ত্রণ প্রয়োজন , আপনি dict.fromkeysস্বীকৃত উত্তর হিসাবে ব্যবহার করতে পারেন :
d = dict.fromkeys([1, 2, 3, 4])
dict.fromkeys([1, 2, 3], [])কোনও কিছুর সাথে আরম্ভ করার বিষয়ে সতর্ক থাকুন: আপনি যদি কল করেন, যেমন , সমস্ত কীগুলি একই তালিকায় ম্যাপ করা থাকে এবং একটিতে পরিবর্তন করে সেগুলি সমস্ত পরিবর্তন করে ify