首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 含有for循环的函数 看不懂

2013-08-09 
python 带有for循环的函数看不懂def get_forenames_and_surnames():forenames[]surnames[]for names,fil

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
[解决办法]

引用:
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迭代  看不懂了
求高人指点


外面的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,没弄混吧?

热点排行