zoukankan      html  css  js  c++  java
  • Python 企业面试题集锦之Python基础

    △字符串、列表、元组、字典每个常用的5个方法?

    字符串:
    字符串用单引号(')或双引号(")括起来,不可变。
     s.strip(c):去除空格或指定的字符c;lstrip/rstrip;
        s.zfill(w):右对齐,宽度小于w用0前补;
        s.ljust(w,c):左对齐,宽度w,填充符c;rjust()右对齐。
        s.join(q):用"s"将序列"q"中的元素串起来;    
        s.partition(sep):以sep为分隔符,把字符串分割,返回一个元组(包含分割符);
        s.split(sep=None, maxsplit=-1):把字符串以sep为分隔符分割,maxsplit为分割次数,返回一个列表(不包含分割符);
        s.find(t):返回t的最左位置,未找到,返回-1;
        s.index(t):返回t的最左位置,未找到,返回ValueError异常;
        s.capitalize():第一个字母变大写;
        s.title():每个单词首字母大写;
        s.center(width, fillchar=None):字符串内容居中,在给定的字符串长度width中内容居中,两边用提供的字符fillchar填充,fillchar默认为空;
        s.count(sub, start=None, end=None):在指定位置start与end之间,计算sub字符的数量;
        s.endswith(suffix, start=None, end=None):判断字符串在start与end位置之间是不是以某个子序列suffix结尾,类似方法还可有startwith();
        s.replace(old, new, count=None):把字符串中某个子序列old替换成一个新序列new,count是替换数,返回一个新字符串;
        s.isdigit():判断是否全是数字;
        s.isalpha():判断是否全是字母;
        s.isalnum():判断是否包含字母或数字;
        s.isspace():判断是否是空字符串;
        s[start:stop:step]:切片,截取子字符串。
     
    字典:
    1:无序(不能索引) 2:数据关联性强 3:键值对,键值对。唯一一个映射数据类型。
    字典的键必须是可哈希的,不可变类型。
    在同一个字典中,键(key)必须是唯一的。
    列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取
    1)clear(self):清除字典中的所有元素。
        2)copy(self):复制一份元组,相当于一次浅拷贝。 
        3)fromkeys(self, iter, value=None):分别以iter中的元素为键,以value为值,创建一个字典。
        4)get(self, k, d=None):获取字典中键为k的值,如果字典中不包含k,则给出d值,d默认为None。
        5)items(self):遍历字典的一个方法,把字典中每对key和value组成一个元组,并把这些元组放在一个类似列表的dict_items中返回。
        6)keys(self):遍历字典键keys的一个方法,返回一个类似列表的dict_keys,与items方法用法相同。
        7) values(self):遍历字典值value的一个方法,返回一个类似列表的dict_values,与items方法用法相同。
        8)pop(self, k, d=None):弹除并返回字典中键为k的值。
        9)popitem(self):从字典中随机取出一组键值,返回一个新的元组。
        10)setdefault(self, k, default=None):从字典中获取键为k的值,当存在k时,功能和get基本一致,当字典中不存在k时,在原字典上添加键为k、值为default的项,并返回default值。
        11)update(self, E=None, **F):给字典新增元素,没有返回值。用法:dict.update(dict2)。
    
    列表:
    索引,切片,加,乘,检查成员。
    1、List写在方括号之间,元素用逗号隔开。
    2、和字符串一样,list可以被索引和切片。
    3、List可以使用+操作符进行拼接。
    4、List中的元素是可以改变的。
     1)append(self, p_object):在原有列表最后位置上追加新元素到列表,不生成新的列表。
        2)clear(self):清空列表里面的元素,不生成新列表。
        3)copy(self):复制一份列表,相当于一次浅拷贝。
        5)extend(self, iterable):把iterable中的每个元素扩展成列表的元素,iterable可以是字符串、列表、集合、元组、字典。
        6)index(self, value, start=None, stop=None):查找列表中value元素索引位置,start与stop参数是查找起始与结束位置,默认为None。
        7)insert(self, index, p_object):在列表index索引位置插入元素p_object,当index大于列表包含的元素个数时,在最后位置插入元素。
        8)pop(self, index=None):从列表中取出index位置的值,index默认为None,此时弹除并返回列表中最后一个值。
        9)remove(self, value):移除列表中第一个出现的value元素,value元素不存在列表中时,则抛出ValueError。
        10)reverse(self):反转列表元素的位置。
        11)sort(self, key=None, reverse=False):给列表中的元素排序,改变原列表!reverse默认False(升序)。【而sorted()函数是生成副本】。
        12)[start:stop:step]:切片,从列表中取出一部分元素生成一个新列表,start与stop默认为None,step表示步长值,默认是一个接着一个切取,
            如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0。
        13)索引[index]:获取索引位置index的值。
    
    元组:
    ()元组的元素不能修改。
    1、与字符串一样,元组的元素不能修改。
    2、元组也可以被索引和切片,方法一样。
    3、注意构造包含0或1个元素的元组的特殊语法规则。
    4、元组也可以使用+操作符进行拼接。
     1)count(self, value):统计元组中包含value元素的数量,返回一个int值。
        2)index(self, value, start=None, stop=None):索引,查找元组中value元素第一个出现的位置,start与stop参数是查找起始与结束位置,默认为None。
        3)[start:stop:step]:切片操作。
    
    Set(集合):
    集合(set)是一个无序不重复元素的序列。
    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
     1)add(self, *args, **kwargs):在集合里添加一个元素,不生成新的集合。
        2)clear(self, *args, **kwargs):清空集合里面的元素,不生成新的集合。
        3)copy(self, *args, **kwargs):浅拷贝集合,返回一个新集合。
        4)difference(self, *args, **kwargs):传入一个或多个参数集合对比,返回一个与参数集合不一样元素的集合。
        5)discard(self, *args, **kwargs):删除集合中的某个元素,如果这个元素没有在集合中,不做操作。
        6)isdisjoint(self, *args, **kwargs):对比两个集合,若空交集则返回True,没有则返回False。
        7)issubset(self, *args, **kwargs):判断集合的包含关系,是否是参数集合的子集。
        8)pop(self, *args, **kwargs):从集合中随机(因集合无序)弹除并返回一个元素,如果集合为空,则报TypeError错误。
        9)remove(self, *args, **kwargs):移除集合中的一个元素,这个元素必须在集合中,如果不在,则报TypeError错误。
        10)union(self, *args, **kwargs):两个集合拼接返回一个新集合。
        11)update(self, *args, **kwargs):更新集合,添加集合中没有的新元素,不返回新集合。
    △哈希冲突回避算法回避有哪几种,分别有什么特点?
    # 特点详细参考 
    https://www.cnblogs.com/liangxiaoji/p/11044468.html
    1.开放地址法 一旦发生了冲突,就去寻找下一个空的散列地址 2.链地址法 每个哈希表节点都有一个next指针,多个哈希表节点可以用next指针构成一个单向链表,被分配到同一个索引上的多个节点可以用这个单向链表连接起来
    3.公共溢出区法  将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表
    4.再哈希法  又叫双哈希法,有多个不同的Hash函数,当发生冲突时,使用第二个,第三个,….,等哈希函数计算地址,直到无冲突。

    1:为什么学习Python

    大学是计算机相关专业,公司建议使用Python,然后自己通过百度和向有学过Python的同学了解了Python。
    Python简单易学,生态圈强大(各种第三方库),应用领域众多(数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等),
    在未来我觉得是往自动化,人工智能这方面发展的,所以学习了Python。

      

    2:通过什么途径学习Python

    自学(网上视频学基础,网上看技术博客,廖雪峰的Python教程),练项目到GitHub上面找一些小项目学习。
  • 相关阅读:
    Java通过stream将list转换成map
    Java 标记接口
    Java的LinkedList
    Java中的数组
    Java的异常
    初识lambda
    Combining a Collection of Predicates
    重载
    svm资料收集
    向量空间及其他相关数学结构
  • 原文地址:https://www.cnblogs.com/lyfstorm/p/10822803.html
Copyright © 2011-2022 走看看