[英]Python Writing a Dictionary to Text File isn't producing correct output
我有這樣的字典-
d = {"Dave":("Male", "96"), "Alice":("Female", "98")}
我想以這種格式將其寫入文本文件-
Dave
Male
96
Alice
Female
98
這是我當前的代碼-
d = {"Dave":("Male", "96"), "Alice":("Female", "98")}
with open("dictionary.txt", 'w') as f:
for key, value in d.items():
f.write('%s \n %s \n' % (key, value))
但是,它將在文本文件中產生以下輸出:
Dave
('Male', '96')
Alice
('Female', '98')
我該如何調整? 請幫忙! 謝謝。
當您使用格式將tuple
轉換為str
時,將獲得tuple
的表示形式 ,(實際上,實際上有2種方法__str__
和__repr__
)在控制台中print
項目時python打印的內容。
要獲取沒有元組裝飾的元素,必須拆開元組的包裝。 一種選擇(使用format
):
for key, value in d.items():
f.write("{}\n{}\n{}\n".format(key,*value))
*
將value
要素分解為2個要素。 其余的format
一種更緊湊的方法是將格式字符串乘以3(減少復制/粘貼)
for key, value in d.items():
f.write(("{}\n"*3).format(key,*value))
我使用了i in range
方法來迭代每個鍵中的每個值-
d = {"Dave":("Male", "96"), "Alice":("Female", "98")}
with open("dictionary.txt", 'w') as f:
for key, value in d.items():
for x in range(0,2):
f.write('%s \n %s \n' % (key, value[x]))
以下在Python 3.6中有效:
d = {"Dave":("Male", "96"), "Alice":("Female", "98")}
with open('dictionary.txt', mode='w') as f:
for name, (sex, age) in d.items():
f.write(f'{name}\n{sex}\n{age}\n')
您可以在for
循環的頂部解壓縮元組。 此外,在Python 3.6中,您可以使用f字符串機制將變量值直接插值到字符串中。
d = {"Dave":("Male", "96"), "Alice":("Female", "98")}
with open("dictionary.txt", 'w') as f:
for key in d.keys():
f.write('%s \n' % (key))
for v in d[key]:
f.write('%s \n' % (v))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.