@th8687rr

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

文字型で記載した複数の辞書型内の情報(キーとバリュー共に)を、txtファイルに保存したいです

解決したいこと

文字型で記載した複数の辞書型内の情報(キーとバリュー共に)を、txtファイルに保存したいです。
下記のように試してみたのですが、辞書型の1番初めに記載した内容のみtxtファイルに保存されます。

どうすれば、辞書型の情報2つ目以降(B:Female & C:Female)もテキストファイルに保存できるのでしょうか?
何が問題で、辞書型の1番初めの情報(A:Male)のみ戻り値として返ってくるのでしょうか?

教えて頂けますと幸いです。

該当するソースコード

test_result = {
    'A': 'Male',
    'B': 'Female', 
    'C': 'Female'
}

def converting(**kwargs):
    for k, v in kwargs.items():
        return k, ':', v

test_tuple = converting(**test_result)
test_str = ''.join(test_tuple)

with open('memo.txt','w') as f:
    f.write(test_str)
0 likes

1Answer

何が問題で、辞書型の1番初めの情報(A:Male)のみ戻り値として返ってくるのでしょうか?

forループの最初のreturnが呼ばれた時点で処理が終わって戻り値が決まってしまうからですね。

どういう形で出力したいかによるとは思いますが、改行を挟みつつ文字列として連結するのはいかがでしょうか?

test_result = {
    'A': 'Male',
    'B': 'Female', 
    'C': 'Female'
}

def converting(**kwargs):
    s = ''
    for k, v in kwargs.items():
        s += f'{k}:{v}\n'
    return s

test_str = converting(**test_result)
print(test_str)
出力
A:Male
B:Female
C:Female
2Like

Comments

  1. @th8687rr

    Questioner

    ありがとうございました!うまくいきました。大変助かりました。

Your answer might help someone💌