我正在尝试获取名称列表,按字母顺序排列并将其打印到新列表中。这是我的代码:
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']
我希望该列表没有文本文件中的括号或引号
答案 0 :(得分:1)
在我看来,你只需要调用列表中的元素即可。行name = row.split()
将按括号中的任何内容拆分行(这是一个字符串),在这种情况下没有。所以
In [1]: "john".split()
Out[1]: ['john']
如果你的文件只是一个名单列表,例如: 约翰 哈利
然后你不需要拆分行,如果你愿意,那么只需索引第0个元素:
row.split()[0]
将为您提供列表中的内容而不是列表。
答案 1 :(得分:0)
row.split
返回一个列表,因此名称包含列表。请改用extend
:
names.extend(row.split())