python 带有for循环的函数 看不懂
def get_forenames_and_surnames():
forenames=[]
surnames=[]
for names,filename in ((fornames,"data/forenames.txt"),
(surnames,"data/surnames.txt")):
for name in open(filename.encoding="utf8"):
names.append(name.rstrip())
return forenames,surnames
最外重的for循环 in里面一个是列表一个是txt文件的相对路径 里面的for循环却是对filename迭代 看不懂了
求高人指点 Python 迭代 for
[解决办法]
外面的for循环,in里面是一个列表,有两个元素,每一个元素又是一个列表:(fornames,"data/forenames.txt")和(surnames,"data/surnames.txt")。
里面的for循环的意思是对filename对应的文件的每一行循环。
[解决办法]
写得有点绕而已
两点
1.for name in open(...) 是按行读入,每行内容赋值给name
2.fornames, surnames是list类型,所以直接变量赋值给names是引用方式,指向同一个内存地址;所以names变化,fornames, surnames也会跟着变化,最后return返回他们即可
两个低级问题,以防万一说说
1. for names,filename in... 相当于 for (names, filename) in... ;应该懂得吧?
2.一个names,一个name,没弄混吧?