0

我正在尝试列出姓名,按字母顺序排列并将它们打印到新列表中。这是我的代码:

names = []
newnames = []
with open("C:/names.txt", "r") as infile:
    for row in infile.readlines():
       name = row.split()
       names.append(name)
    for x in sorted(names):
       newnames.append(x)
    print newnames
f = open("C:/newnames.txt", "w")
f.write("\n".join(str(x) for x in newnames))
f.close()

我的问题是它打印得很好,除了括号:

['Bradley']

['Harold']

['Jackson']

['Lincoln']

['Mercury']

['Shane']

['Sharon']

['Sherry']

['Xavier']

['Zoolander']

我想要文本文件中没有括号或引号的列表

4

2 回答 2

1

在我看来,您只需要调用列表的元素即可。该行将name = row.split()用括号中的任何内容分割行(这是一个字符串),在这种情况下什么都没有。所以

In [1]: "john".split()
Out[1]: ['john']

如果您的文件只是一个名称列表,例如:John Harry

然后您不需要拆分行,如果您确实希望然后简单地索引第 0 个元素:

row.split()[0]

将为您提供列表中的内容,而不是列表。

于 2013-10-07T20:05:08.367 回答
0

row.split返回一个列表,因此 names 包含列表。改用extend

names.extend(row.split())
于 2013-10-07T20:06:05.507 回答