Lyf凤

靡不有初,鲜克有终

扩大
缩小

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上面找一些小项目学习。

posted on 2019-06-18 12:04  Lyf凤  阅读(576)  评论(0编辑  收藏  举报

导航

levels of contents