পাইথনে আমি কীভাবে কোনও অভিধানের কী-মান জোড়গুলি মুদ্রণ করব


175

আমি পাইথন অভিধান থেকে আমার মূল মান জোড়গুলি আউটপুট করতে চাই:

key1 \t value1
key2 \t value2

আমি ভেবেছিলাম আমি সম্ভবত এটি এটি করতে পারি:

for i in d:
    print d.keys(i), d.values(i)

তবে স্পষ্টতই এটি এর মতো হয় না keys()এবং values()কোনও যুক্তি না নেয়।


উত্তর:


325

আপনার বিদ্যমান কোডটির জন্য কেবল একটি সামান্য টুইট করা দরকার। i হয় কী, তাই আপনি শুধু এটা ব্যবহার করতে হবে হবে:

for i in d:
    print i, d[i]

আপনি এমন একটি পুনরাবৃত্তকারীও পেতে পারেন যাতে কী এবং মান উভয় থাকে। পাইথন 2 এ, d.items()(কী, মান) টিউপসগুলির একটি তালিকা ফেরত দেয়, d.iteritems()আবার একটি পুনরাবৃত্তি প্রদান করে যা একই সরবরাহ করে:

for k, v in d.iteritems():
    print k, v

পাইথন 3 এ, d.items()পুনরুক্তি প্রদানকারীরকে দেয়; একটি তালিকা পেতে, আপনাকে list()নিজের কাছে পুনরাবৃত্তিটি পাস করতে হবে ।

for k, v in d.items():
    print(k, v)

60

অভিধানে একটি সামান্য ভূমিকা

d={'a':'apple','b':'ball'}
d.keys()  # displays all keys in list
['a','b']
d.values() # displays your values in list
['apple','ball']
d.items() # displays your pair tuple of key and value
[('a','apple'),('b','ball')

কী মুদ্রণ করুন, মান পদ্ধতি এক

for x in d.keys():
    print x +" => " + d[x]

আরেকটি পদ্ধতি

for key,value in d.items():
    print key + " => " + value

আপনি কীগুলি ব্যবহার করে পেতে পারেন iter

>>> list(iter(d))
['a', 'b']

আপনি ব্যবহার করে অভিধানের কীটির মান পেতে পারেন get(key, [value]):

d.get('a')
'apple'

যদি অভিধানে কী উপস্থিত না থাকে, যখন ডিফল্ট মান দেওয়া হয়, মানটি ফেরত দেয়।

d.get('c', 'Cat')
'Cat'


9

অভিধান:

d={'key1':'value1','key2':'value2','key3':'value3'}

অন্য একটি লাইন সমাধান:

print(*d.items(), sep='\n')

আউটপুট:

('key1', 'value1')
('key2', 'value2')
('key3', 'value3')

(তবে, যেহেতু কেউ এর আগে কেউ এর আগে কিছু প্রস্তাব করেনি তাই আমার সন্দেহ হয় এটি ভাল অনুশীলন নয়)


1
আমি মনে করি এটি অবশ্যই আরও গ্রহণযোগ্য উত্তর হওয়া উচিত! ... আমি এই উত্তরটি পাই বলে পাই যে অজগরটিতে এমন ধরণের শক্তি যা বেশিরভাগ উপেক্ষা করা হয় ... আপনি '()' থেকে মুক্তি পাওয়ার জন্য অনুসরণও করতে পারেন ... print(*[f"{': '.join(map(str,v))}" for i,v in enumerate(list(d.items()))], sep='\n').... বা আপনি নিম্নলিখিতটি করতে পারেন: সুবিধার্থে সূচিপত্র # এর পাশাপাশি প্রিন্ট করুনprint(*[f"[{i}] {': '.join(map(str,v))}" for i,v in enumerate(list(d.items()))], sep='\n')
গ্রিনহাউস


4

আপনি আপনার অভিধানে আইটেমগুলি কল করে আপনার কী এবং / অথবা মানগুলি অ্যাক্সেস করতে পারেন ।

for key, value in d.iteritems():
    print(key, value)

1
আপনি items()আপনার পাঠ্যের প্রথম লাইনে এবং কোডটি দিয়েছিলেন iteritems()। পাইথন 3 এক্স-তে সঠিক উপায়টি dict.items()আপনি আগে বলেছিলেন।
জোয়েল কারনেইরো

3

আপনি যদি ডিক কী দ্বারা আউটপুটটি বাছাই করতে চান তবে সংগ্রহ প্যাকেজটি ব্যবহার করতে পারেন ।

import collections
for k, v in collections.OrderedDict(sorted(d.items())).items():
    print(k, v)

এটি অজগর 3 এ কাজ করে



1

ইতিমধ্যে উল্লিখিত উপায়গুলি ছাড়াও .. 'ভিউয়েটেম', 'ভিউকিজ', 'ভিউভ্যালু' ব্যবহার করতে পারে

>>> d = {320: 1, 321: 0, 322: 3}
>>> list(d.viewitems())
[(320, 1), (321, 0), (322, 3)]
>>> list(d.viewkeys())
[320, 321, 322]
>>> list(d.viewvalues())
[1, 0, 3]

অথবা

>>> list(d.iteritems())
[(320, 1), (321, 0), (322, 3)]
>>> list(d.iterkeys())
[320, 321, 322]
>>> list(d.itervalues())
[1, 0, 3]

বা আইটেমটার ব্যবহার করে

>>> from operator import itemgetter
>>> map(itemgetter(0), dd.items())     ####  for keys
['323', '332']
>>> map(itemgetter(1), dd.items())     ####  for values
['3323', 232]

0

একটি সহজ অভিধান:

x = {'X':"yes", 'Y':"no", 'Z':"ok"}

পাইথন 3 এ একটি নির্দিষ্ট (কী, মান) জুটি মুদ্রণ করতে (এই উদাহরণে সূচকে 1 তে জোড়া):

for e in range(len(x)):
    print(([x for x in x.keys()][e], [x for x in x.values()][e]))

আউটপুট:

('X', 'yes')
('Y', 'no')
('Z', 'ok')

টিপলে সমস্ত জোড়া মুদ্রণের জন্য এখানে একটি লাইনারের সমাধান রয়েছে:

print(tuple(([x for x in x.keys()][i], [x for x in x.values()][i]) for i in range(len(x))))

আউটপুট:

(('X', 'yes'), ('Y', 'no'), ('Z', 'ok'))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.