我是python的新手,被困在一项简单的任务上。我在stackoverflow上查看了类似的问题,但无法应用于我自己的问题。我已经创建了一个带有名称列表的文件。我如何创建一个新文件,其中它读取原始文件(假装我不知道文件中有多少个名字)并颠倒名字(人的顺序相同,但姓氏在名字之前)。下面是我的脚本:
firstname1 = "Morty"
lastname1 = "Smith"
fullname1 = firstname1 + " " + lastname1
firstname2 = "Donna"
lastname2 = "Gueterman"
fullname2 = firstname2 + " " + lastname2
firstname3 = "Beth"
lastname3 = "Smith"
fullname3 = firstname3 + " " + lastname3
firstname4 = "Rick"
lastname4 = "Sanchez"
fullname4 = firstname4 + " " + lastname4
firstname5 = "Little"
lastname5 = "Dipper"
fullname5 = firstname5 + " " + lastname5
formal_names = fullname1,fullname2,fullname3,fullname4,fullname5
f = open("names_normal.txt","w")
f.write("%s " % (formal_names, ))
f.close()
def reverse_list(lst):
new = []
count = len(lst)-1
while count >=0:
new.append(lst[count])
count -= 1
return new
x = reverse_list(formal_names)
n = open("names_new.txt","w")
n.write("%s " % (x, ))
n.close()
以下是我的结果:
第一部影片:(《摩蒂·史密斯》、《唐娜·古特曼》、《贝丝·史密斯》、《里克·桑切斯》、《小北斗七星》)
第二张:(《小北斗》、《里克·桑切斯》、《贝丝·史密斯》、《唐娜·古特曼》、《莫蒂·史密斯》)
我想要的:(《史密斯·莫蒂》、《吉特曼·唐娜》、《史密斯·贝思》、《桑切斯·里克》、《北斗七星》)
任何帮助都将不胜感激!非常感谢!
发布于 2017-09-30 06:33:36
def reverse_list(lst):
new = []
for name in lst:
temp = name.split(" ")
new += [temp[1]+" "+temp[0]]
你只是改变了数组中单词的顺序,你应该用空格来改变名字和姓氏的顺序。
发布于 2017-09-30 06:34:24
def reverse_name(name):
# Try to fill here and update if doesn't work
def reverse_list(lst):
new = []
for name in lst:
new.append(reverse_name(name))
return new
发布于 2017-09-30 07:14:17
这就是我解决这个问题的方法。最好是像上面提到的那样把它放在一个函数中。
firstname1 = "Morty"
lastname1 = "Smith"
fullname1 = firstname1 + " " + lastname1
firstname2 = "Donna"
lastname2 = "Gueterman"
fullname2 = firstname2 + " " + lastname2
firstname3 = "Beth"
lastname3 = "Smith"
fullname3 = firstname3 + " " + lastname3
firstname4 = "Rick"
lastname4 = "Sanchez"
fullname4 = firstname4 + " " + lastname4
firstname5 = "Little"
lastname5 = "Dipper"
fullname5 = firstname5 + " " + lastname5
formal_names = [fullname1,fullname2,fullname3,fullname4,fullname5]
reversed = []
for i in range(0, (len(formal_names))):
rev = formal_names[i].split()
rev_name = rev[1] + ' ' + rev[0]
reversed.append(rev_name)
print(reversed)
['Smith Morty', 'Gueterman Donna', 'Smith Beth', 'Sanchez Rick', 'Dipper Little']
现在,您只需将列表写入一个文件
with open('output.txt', 'w') as file:
for name in reversed:
file.write(name)
https://stackoverflow.com/questions/46497640
复制相似问题