我正在嘗試在文本檔案中列印這樣的輸出:
Bruce Wayne
5 5 0 0 100 15
Jessica Jones
12 0 6 6 10 6
Johnny Rose
6 2 0 4 20 10
Gina Linetti
7 4 0 3 300 15
Buster Bluth
3 0 2 1 50 1
但是我的代碼在這里:
def write_to_file(filename, player_list):
outfile = open(filename, "w")
for i in range(len(player_list)):
for j in player_list[i]:
outfile.write(str(j) '\n')
outfile.close()
它列印出來是這樣的:
Bruce Wayne
5
5
0
0
100
15
Jessica Jones
12
0
6
6
10
6
Johnny Rose
6
2
0
4
20
10
Gina Linetti
7
4
0
3
300
15
Buster Bluth
3
0
2
1
50
1
player_list = [['Bruce Wayne', 5, 5, 0, 0, 100, 15], ['Jessica Jones', 12, 0, 6, 6, 10, 6], ['Johnny Rose', 6, 2, 0, 4, 20, 10], ['Gina Linetti', 7, 4, 0, 3, 300, 15], ['Buster Bluth', 3, 0, 2, 1, 50, 1]]
而且我不確定如何讓底行像上面的輸出一樣水平列印。我不允許使用任何串列函式,我必須使用回圈,如我的代碼所示。謝謝!
uj5u.com熱心網友回復:
您不能將所有內容都視為player_list相同,因為值意味著不同的事物。第一個值是玩家姓名,其余的是分數或其他東西。因此,您的代碼需要在第一個值之后放置一個換行符,但其余部分之間只有空格(在第二行末尾有一個換行符)。
嘗試這樣的事情:
def write_to_file(filename, player_list):
outfile = open(filename, "w")
for player_name, *scores in player_list: # unpack first value separately
outfile.write(player_name "\n")
outfile.write(" ".join(str(score) for score in scores) "\n")
outfile.close()
不相關的是,您可能希望使用它with來處理您的檔案物件。即使出現例外,它也會自動為您關閉檔案:
with open(filename, "w") as outfile:
for blah in ...:
...
# no need to manually call close(), it will happen automatically here
uj5u.com熱心網友回復:
這樣做
def write_to_file(filename, player_list):
outfile = open(filename, "w")
for i in range(len(player_list)):
for j in player_list[i]:
outfile.write(str(j))
outfile.write('\n')
outfile.close()
uj5u.com熱心網友回復:
您需要將玩家名稱與值分開。
def write_to_file(filename, player_list):
outfile = open(filename, "w")
for lst in player_list:
player = lst[0]
values = lst[1:]
outfile.write(player '\n' " ".join([str(num) for num in values]) '\n')
outfile.close()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490560.html
下一篇:如何使用標記元素拆分串列?
