• 面试题


    ---恢复内容开始---

    # 1、下面代码的输出结果是什么?
    list1 = ['a', 'b', 'c', 'd', 'e']
    print(list1[10:]) # []

    # 2、各行打印的结果应该是多少?
    list1 = [ [ ] ] * 5 [[],[],[],[],[]]
    list1[0].append(10)
    print(list1) [[10], [10], [10], [10], [10]]
    list1[1].append(20)
    print(list1) [[10, 20], [10, 20], [10, 20], [10, 20], [10, 20]]
    list1.append(30)
    print(list1)[[10, 20], [10, 20], [10, 20], [10, 20], [10, 20], 30]

     3、写一个函数:

    查出字符串中每个单词的首字母在整个字符串的位置。把这些首字母的索引添加到result列表中,并返回给调用者。

    names = 'Jack Eason Max'

    答案:

    1:def get_num(name):
    result = []
    result.append(0)
    for index,val in enumerate(name):
    if val == ' ':
    result.append(index+1)
    return result
    print(get_num(names))

    生成器:

    def get_num(name):
    yield 0
    for index,val in enumerate(name):
    if val == ' ':
    yield index+1


    res = get_num(names)
    print(list(res))

    文件操作
    def func(f):
    index = 0
    for line in f:
    if line:
    yield index
    for val in line:
    index+=1
    if val == ' ':
    yield index+1

    with open('test','r',encoding='utf-8') as f:
    res = func(f)
    print(list(res))
    
    
    def add(n,i):
        return n+i
    
    def test():
        for i in range(4):
            yield i
    
    
    g = test() #这个时候不是调用函数而是生成器初始化
    
    for  n in [1,10]: # 这是循环2次,第一次为1第二次为10
        g = (add(n,i) for i in g)  # 后面的g是前面的生成器对象,前面的只是一个变量
        #第一次循环后长沙呢个的生成器对象g = (add(n,i) for i in test())
        #第二次循环的时候就是再in 前面的生成器对象g = (add(n,i) for i in (add(n,i) for i in test()) )
        # 但这2步我都不执行代码
    
    res = list(g)
    print(res)  # 这一步我才会去执行函数体代码,这个时候我的n将会找最近的就是10,所以我也只会执行第二次循环,这样结果就是[20,21,22,23]
    '''
    闭包延迟绑定,因为我在定义阶段我不去调用的话不会去进行传值,当我调用的时候我会去找离我最近的,这个时候才会进行绑定
    '''

    ---恢复内容结束---

  • 相关阅读:
    重新认识自己
    GIT学习之路第一天 简介及其安装
    GIT学习之路第一天 简介及其安装
    2017杭电多校第六场1008 Kirinriki
    2017杭电多校第六场1008 Kirinriki
    常用技巧精选之尺取法
    常用技巧精选之尺取法
    2017杭电多校第六场1011Classes
    2017杭电多校第六场1011Classes
    2017杭电多校第六场03Inversion
  • 原文地址:https://www.cnblogs.com/xinfan1/p/11215812.html
Copyright © 2020-2023  润新知