たとえば、
a = {('a','b','c'):2, ('b','c','d'):3}
のみ返品したい'a','b'
。
私は試した:
for key in a:
return key[0]
しかし、それは返されただけ'a'
です。
ラムダやカウンターなどを使用せずに最初の要素を見つける適切な方法はありますか (これは Python の基本的なコースです)。したがって、他の入力プログラムはありません。
たとえば、
a = {('a','b','c'):2, ('b','c','d'):3}
のみ返品したい'a','b'
。
私は試した:
for key in a:
return key[0]
しかし、それは返されただけ'a'
です。
ラムダやカウンターなどを使用せずに最初の要素を見つける適切な方法はありますか (これは Python の基本的なコースです)。したがって、他の入力プログラムはありません。
関数 (したがってfor
ループ) は、ヒットするとすぐに終了しますreturn
。値をリストに保存してから、それを返す必要があります。何かのようなもの:
def getFirstElems(dic):
firstElems = []
for key in dic:
firstElems.append(key[0])
return firstElems
次に、その関数を次のように実行すると:
a = {('a','b','c'):2, ('b','c','d'):3}
elem1, elem2 = getFirstElems(a)
print "elem1:", elem1
print "elem2:", elem2
次の出力が得られます。
elem1: a
elem2: b
このようなものが欲しいですか
In [4]: a = {('a','b','c'):2, ('b','c','d'):3}
In [5]: [key[0] for key in a.keys()]
Out[5]: ['a', 'b']
コードの問題はreturn
ステートメントです...返す前にすべての結果を保持する必要があります...
使用できるたびに個々の要素が必要な場合generators
In [19]: def mygenerator():
....: a = {('a','b','c'):2, ('b','c','d'):3}
....: for k in a.keys():
....: yield k[0]
....:
In [20]: mg = mygenerator()
In [21]: print(mg)
<generator object mygenerator at 0x035FA148>
In [22]: for i in mg:
....: print i
....:
a
b
私が言えることから、dictのキーをループしたいと思います。試す
for k in a.keys():