Pythonic方法修改列表中的所有项目,并将列表保存到.txt文件

Mar*_*chy 6 python file list

我有一个字符串列表.

theList = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

我想在字符串中添加整数,产生如下输出:

newList = ['a0', 'b0', 'c0', 'a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'a3', 'b3', 'c3']
Run Code Online (Sandbox Code Playgroud)

我想将此格式保存为.txt文件,格式如下:

a0
b0
c0
a1
b1
c1
a2
b2
c2
a3
b3
c3
Run Code Online (Sandbox Code Playgroud)

尝试:

theList = ['a', 'b', 'c']
newList = []

for num in range(4):
    stringNum = str(num)
    for letter in theList:
        newList.append(entry+stringNum)

with open('myFile.txt', 'w') as f:
    print>>f, newList
Run Code Online (Sandbox Code Playgroud)

现在我可以保存到文件myFile.txt,但文件中的文本为:

['a0', 'b0', 'c0', 'a1', 'b1', 'c1', 'a2', 'b2', 'c2', 'a3', 'b3', 'c3']
Run Code Online (Sandbox Code Playgroud)

有关更多pythonic方法实现我的目标的任何提示都是非常受欢迎的,

Ned*_*der 7

而不是你的最后一行,使用:

f.write("\n".join(newList))
Run Code Online (Sandbox Code Playgroud)

这将把newList中的字符串写成f,用换行符分隔.请注意,如果您实际上不需要newList,则可以组合两个循环并随时编写字符串:

the_list = ['a', 'b', 'c']

with open('myFile.txt', 'w') as f:
    for num in range(4):
        for letter in the_list:
            f.write("%s%s\n" % (letter, num))
Run Code Online (Sandbox Code Playgroud)

  • 最好在本网站的答案中使用`range`,因为它与python 3兼容. (3认同)
  • @jamylak是的,我正在为我的原始评论提供解释,并感谢您的评论.都很好. (2认同)