zoukankan      html  css  js  c++  java
  • python基础复习突击面试(1)

    1、map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    例:
    def f(x):
    return x*x
    print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    输出结果:[1, 4, 9, 10, 25, 36, 49, 64, 81]
    2、对列表进行求和排序,是list1.sort( ),注意排序后列表本身就被改变了,不需要再赋值给一个变量,sum(list1)得到列表中每个元素的求和值
    3、对list1[1,2,3,4,5]的偶数位置的元素进行加3,最后求和。
    >>> p=sum(map(lambda x:x+3,list1[1::2]))
    >>> print p
    4、对list1=[-2,-1,3,4]的绝对值进行排序
    >>> sorted(list1,key=abs)
    [-1, -2, 3, 4]
    5、闭包:内部函数可以使用外部函数变量的行为。
    例:https://www.cnblogs.com/ChrisChen3121/p/3208119.html
    def foo():
    m=3
    n=5
    def bar():
    a=4
    return m+n+a
    return bar
    6、Python中的变量作用域:local-gloabl-enclosed(闭包)-bulit_in
    # local namespace: 作用范围为当前函数或者类方法
    # global namespace: 作用范围为当前模块
    # build-in namespace: 作用范围为所有模块
    7、一行代码生成 [1,4,9,16,25,36,49,64,81,100],使用列表生成式,[i*i for i in range(1,11)]
    8、请将 "1,2,3",变成 ["1","2","3"],使用spilt内置函数
    >>> '1,2,3'.split(',')
    ['1', '2', '3']
    9、字典元素的键不能为可变对象,比如{[1,2]:3}是错误的,而{(1:2):3}是对的,列表是可变元素,元组是不可变元素。注:但值是可变的。
    10、list 对象 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}], 请按 alist 中元素的age 由大到小排序;
    >>> sorted(alist,key=lambda x:x['age'],reverse=True)
    11、两个 list 对象 alist ['a','b','c','d','e','f'], blist ['x','y','z','d','e','f'],请用简洁的方法合并这两个 list,并且 list 里面的元素不能重复:
    12、>>> from math import sqrt
    >>> print sqrt(3)*sqrt(3)==3 ##打印结果应该是3.0
    False
    13、>>> type(1+2L*3.14)
    <type 'float'>
    14、代码实现:输入一个列表[0,1,2,3,4,5,6,8,9,10],输出数字是偶数,且该数字的位置也是偶数?要求输出为[0,2,6,8,10]
    #!/usr/bin/env python

    temp=[]
    def fun(list_name):
    count = len(list_name)
    for i in range(count):
    if i%2==0 and list_name[i]%2==0:
    temp.append(list_name[i])
    return temp
    list1=[0,1,2,3,5,4,6,7,8,9,10]
    print 'the answer is',fun(list1)

    15、把字典的Key-Value值翻转?
    >>> dict2={1:'a',2:'b',3:'c'}
    >>> def test(dict_name):
    ... return dict( (v,k) for k,v in dict_name.iteritems() )
    ...
    >>> test(dict2)
    {'a': 1, 'c': 3, 'b': 2}
    ## iteritems()方法是字典项生成器,紧接着是列表表达式 ##iteritems把字段的键值对放在一个列表项中,返回的是一个迭代器,通过yield的next( )方法来取值
    >>> print dict1.items() ##items()方法是将字典的每个项作为元组,然后把所有把所有元组放在一个列表容器中
    [(1, 7), (2, 8), (3, 9)]

    字典翻转的简单实现(字典生成器):
    d1 = {'name':'yhc','sex':'man'}
    def test(dict_name):
    return {v:k for k,v in dict_name.items()}
    >>> test(d2)
    {'yhc': 'name', 'man': 'sex'}

    16、python提供两个对象身份比较符,分别是is和is not;变量无需创建,但是需要赋值才能使用
    17、s='abcdefg',s[::2]='aceg',s[-2:-5]='',s[::-1]='gfedcba' ##右边最小是-1
    18、所有标准对象均能用于布尔测试,包括空字典{}、空字符串' ',空列表[]、空元组和None
    19、>>> 'abc'>'xyz'
    False
    >>> (3,2)<('a','b')
    True
    比较第一个元素的ASCII值,字符应该视为长度为1的字符串,整个元组可以作为字典的key,而列表是不行的
    20、min和max都是内置函数,不能单独作为变量存在。while True: pass是正确的语法

     此篇文章,还有32道题目,在我的面经中,详情看下面。

    我会持续更新面试题目,包括linux,前端(vue,jquery,css)、python、mysql和redis的面经题目,后期加入golang。可以加我qq 2093905919或者微信 18828004657,跟我聊聊。(注:可以分享一部分面试题目,觉得可以的话,剩下的全部面试题目(多年经验,非常多而广的题目,适合突击面试复习,适合运维工程师,python工程师,运维开发,甚至前端开发(vue,asp,jquery)等等),需要打赏200元,绝对物超所值)

  • 相关阅读:
    windows中dos命令指南
    HDU 2084 数塔 (dp)
    HDU 1176 免费馅饼 (dp)
    HDU 1004 Let the Balloon Rise (map)
    变态杀人狂 (数学)
    HDU 2717 Catch That Cow (深搜)
    HDU 1234 开门人和关门人 (模拟)
    HDU 1070 Milk (模拟)
    HDU 1175 连连看 (深搜+剪枝)
    HDU 1159 Common Subsequence (dp)
  • 原文地址:https://www.cnblogs.com/yue-hong/p/13023936.html
Copyright © 2011-2022 走看看