次のように、Python辞書からキーと値のペアを出力したいと思います。
key1 \t value1
key2 \t value2
私はおそらくこれを次のように行うことができると思いました:
for i in d:
print d.keys(i), d.values(i)
しかし、それは明らかにそれがそうである方法ではなく、議論keys()
をvalues()
しません。
次のように、Python辞書からキーと値のペアを出力したいと思います。
key1 \t value1
key2 \t value2
私はおそらくこれを次のように行うことができると思いました:
for i in d:
print d.keys(i), d.values(i)
しかし、それは明らかにそれがそうである方法ではなく、議論keys()
をvalues()
しません。
回答:
既存のコードは少し調整が必要です。i
であるあなたはそれを使用する必要がありますので、キー:
for i in d:
print i, d[i]
キーと値の両方を含むイテレータを取得することもできます。Python 2ではd.items()
、(キー、値)タプルのリストをd.iteritems()
返しますが、同じものを提供するイテレータを返します。
for k, v in d.iteritems():
print k, v
Python 3ではd.items()
、イテレータを返します。リストを取得するには、イテレータをlist()
自分に渡す必要があります。
for k, v in d.items():
print(k, v)
辞書の少し紹介
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')
キー、値メソッド1の印刷
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'
または、Python 3の場合:
for k,v in dict.items():
print(k, v)
辞書:
d={'key1':'value1','key2':'value2','key3':'value3'}
別の1行のソリューション:
print(*d.items(), sep='\n')
出力:
('key1', 'value1')
('key2', 'value2')
('key3', 'value3')
(しかし、誰もこれまでにこのようなことを提案したことがないので、それは良い習慣ではないと思います)
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')
辞書でitems()を呼び出すことにより、キーや値にアクセスできます。
for key, value in d.iteritems():
print(key, value)
items()
はあなたのテキストの最初の行とあなたが置いたコードで言ったiteritems()
。python3xでは、正しい方法はdict.items()
最初に言ったとおりです。
>>> d={'a':1,'b':2,'c':3}
>>> for kv in d.items():
... print kv[0],'\t',kv[1]
...
a 1
c 3
b 2
すでに述べた方法に加えて、「viewitems」、「viewkeys」、「viewvalues」を使用できます。
>>> 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]
またはitemgetterを使用して
>>> from operator import itemgetter
>>> map(itemgetter(0), dd.items()) #### for keys
['323', '332']
>>> map(itemgetter(1), dd.items()) #### for values
['3323', 232]
簡単な辞書:
x = {'X':"yes", 'Y':"no", 'Z':"ok"}
Python 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'))