Python 如何按描述的正确格式拆分行?

Python 如何按描述的正确格式拆分行?,python,python-3.x,string,Python,Python 3.x,String,我正在写一个程序来随机排列某些单词,我已经做到了。然而,当输出被打印时,它全部显示在一行中。 i、 e {“中国”:0,“斯洛伐克”:1,“贝宁”:2,“朝鲜”:3,“以色列”:4,“孟加拉国”:5} 我需要按照如下所述的方式拆分这些单词: 中国,0 斯洛伐克,1 贝宁,2 等等 我试过str.split和break,但没用 我尝试的代码是: with open("countries") as f: names = [line.strip() for line in f ] rand

我正在写一个程序来随机排列某些单词,我已经做到了。然而,当输出被打印时,它全部显示在一行中。 i、 e

{“中国”:0,“斯洛伐克”:1,“贝宁”:2,“朝鲜”:3,“以色列”:4,“孟加拉国”:5}

我需要按照如下所述的方式拆分这些单词:

中国,0 斯洛伐克,1 贝宁,2

等等

我试过str.split和break,但没用

我尝试的代码是:

with open("countries") as f:
    names = [line.strip() for line in f ]  
random.shuffle(names)
d = { name: n for n, name in enumerate(names)}
但是没有用。 如何按上面指定的方式拆分这些单词?

试试以下方法:

output_file=openoutput.txt,w+ 对于键,d项中的值: 输出文件。写入“{0}:{1}”。formatkey,值 output\u file.close
我可以看到,您得到了结果,我希望结果来自名为d的变量

为了打印它,使用d,穿过它,像这样打印:

# YOUR CODE
with open("countries") as f:
    names = [line.strip() for line in f ]  
random.shuffle(names)
d = { name: n for n, name in enumerate(names)}

# Now d has some value, we can traverse through it
# MY CODE
for key, value in d.items():
    print(f"{key}, {value}")
输出

我不知道您是否考虑过这个问题,但是如果您得到了字典结果,那么遍历它并给出所需的输出是非常容易的。谢谢,祝您编码愉快

将输出写入另一个文件的工作解决方案

请这样做,你就可以走了。我自己测试了输出,它按预期输出数据

此外,如果在open'output.txt'、'w'中使用w,则每次都会用新数据替换数据 为了使文件唯一地包含所有数据,可以将w替换为a,使其打开'output.txt','a'
您可以使用拆分方法。您必须在问题中包含您试图拆分的单词或行。您在哪里打印输出?我将输出打印到另一个txt文件中。您的意思是d中的键、值。项:printkey、值?对不起,我只需要知道将其放在哪里。还有TypeError:write只接受一个参数2given@Coder1341985哦:我修好了!再试一次。然后把它放在你的代码的末尾,问题中的代码谢谢,但我仍然得到错误:indexer-ror:tuple-index-out-ofrange@Coder1341985再试一次!我不知道为什么我在format方法中放入列表!!:|我修好了!现在它告诉我output_file.close是一个无效语法:/Thank your your code work well!我只是想知道是否可以将其输出到一个单独的txt/json文件中?嘿@Coder1341985,我已经添加了相同的答案。让我知道这是否对你有效我已经尝试了所有3种方法,但它们似乎对我都不起作用:/你能告诉我,你的错误是什么吗?我没有收到任何错误。但是,当我检查要写入的文件时,它仍然是相同的格式{‘中国’:0,‘斯洛伐克’:1,‘贝宁’:2,‘朝鲜’:3,‘以色列’:4,‘孟加拉国’:5},但输出仍然是相同的。。。
# taking d = {'China': 0, 'Slovakia': 1, 'Benin': 2, 'North Korea': 3, 'Israel': 4, 'Bangladesh': 5}

China, 0
Slovakia, 1
Benin, 2
North Korea, 3
Israel, 4
Bangladesh, 5
import sys

orig_stdout = sys.stdout
f = open('output.txt', 'w')
sys.stdout = f

# make sure you type cast str() to both key and value, 
# else, you will get a blank txt file
for key, value in d.items():
     print(str(key) + ", " + str(value))

sys.stdout = orig_stdout
f.close()