Python面试题常用函数总结
1. Python 中 join() 的用法
'a'.join(s) : 返回在 s 的每一个元素之间插入字符串 a 的新字符串。
参数说明
a:分隔符,可以为空
s:要连接的元素序列、字符串、元组、字典
上面的语法即:以 a 作为分隔符,将 s 所有的元素合并成一个新的字符串
返回值:返回一个以分隔符 a 连接各个元素后生成的字符串
补充:os.path.join()函数
语法: os.path.join(path1[,path2[,…]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
#对序列进行操作 使用‘ ’作为分隔符
s= ['hello' , 'how' , 'are' , 'you' ]
print(' '.join(s))
#对字符串进行操作
# 输出 hello how are you
# 对元祖进行操作
s = ('hello' ,'good' , 'boy', 'liu')
print(':'.join(s))
# 输出 hello:good:boy:liu
# 对字典进行操作
s = {'hello':1 , 'good':2, 'boy':3}
print(':'.join(s))
# 输出 hello:good:boy
# 合并目录
import os
print(os.path.join('/hello/','good/boy/','xu'))
# 输出 /hello/good/boy/liu
2. list(s)函数
list(s) 函数将序列 s 转换为一个列表
描述:list() 方法用于将元组或字符串转换为列表。
注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
语法:list( seq )
参数 seq 是要转换为列表的元组或字符串。
返回值:返回列表。
>>> s='hello'
>>> print(list(s))
['h', 'e', 'l', 'l', 'o']
>>> s=('hello','world','123')
>>> print(list(s))
['hello', 'world', '123']
3. Python 中是没有 ++ 和 -- 操作的,自增自减操作可通过 +=/-=
4. split()函数
string.split(str, num)
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。规定要执行的拆分数。默认值为 -1,即“所有出现次数”。描述:split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。它是按指定的分隔符,把一个字符串分隔成指定数目的子字符串,然后把它们放入一个列表中,其中每个单词都是一个列表项。
#例1:
>>> a="I love China"
>>> a.split() # 分隔符为空,分割次数默认
['I', 'love', 'China']
#例2:
>>> b="I love China, and you, you"
>>> b.split(", ") # 使用逗号和空格作为分隔符
['I love China', 'and you', 'you']
#例3:
>>> c="I#love#China#andyou#you"
>>> c.split("#") #使用#作为分隔符
['I', 'love', 'China', 'andyou', 'you']
#例4:
>>> d="I#love#China#andyou#you"
>>> d.split("#",1) # 将 max值为 1,将返回包含 2 个元素的列表
['I', 'love#China#andyou#you']
#例5:
>>> e="with great power comes great responsibility. I love China and you you"
>>> e.split(" ",15) #空格为分隔符
['with', 'great', 'power', 'comes', 'great', 'responsibility.', 'I', 'love', 'China', 'and', 'you', 'you']
5. 巧用 [::-1] python字符串切片方法
[::-1] 是一个逆序操作,核心是切片。设有列表/字符a,则切片的语法为 b = a[start_index: end_index: step]
s1 = s[: : -1] 其实就是s1 = s[-1: : -1]
>>> s='the sky is blue'
>>> print(list(s)[::-1])
['e', 'u', 'l', 'b', ' ', 's', 'i', ' ', 'y', 'k', 's', ' ', 'e', 'h', 't']
>>> print(s.split()[::-1])
['blue', 'is', 'sky', 'the']
>>> print(s[::-1])
eulb si yks eht
>>> a=['h','e','ll','o']
>>> print(a[::-1])
['o', 'll', 'e', 'h']
6. Counter()函数
Counter() 是 collections 库中的一个函数,可以用来统计一个 python 列表、字符串、元组等可迭代对象中每个元素出现的次数,即统计词频 并返回一个字典。
from collections import Counter
nums = [1, 1, 1, 6, 6, 6, 7, 8]
count = Counter(nums) # 统计词频
for k, v in count.items():
print(k, v)
print(count)
"""
输出:
1 3
6 3
7 1
8 1
Counter({1: 3, 6: 3, 7: 1, 8: 1})
"""
使用 Counter 统计完词频后可以使用 most_common 方法来查找出现频率最高的 k 个数字及其出现次数。
from collections import Counter
nums = [1, 1, 1, 6, 6, 6, 7, 8]
count = Counter(nums)
ansdict = count.most_common(2) # 返回出现次数最多的两个数及其出现的次数
print(ansdict) # 注意输出格式
ans = []
for i in range(len(ansdict)):
ans.append(ansdict[i][0]) # 提取出出现次数最多的两个数
print(ans)
"""
输出:
[(1, 3), (6, 3)]
[1, 6]
"""
7. 字典(Dictionary)的 get()方法
get() 函数返回指定键的值。
dict.get(key[, value])
- key -- 字典中要查找的键。
- value -- 可选,如果指定键的值不存在时,返回该默认值。
- 返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。
tinydict = {'Name': 'Runoob', 'Age': 27}
print ("Age : %s" % tinydict.get('Age'))
# 没有设置 Sex,也没有设置默认的值,输出 None
print ("Sex : %s" % tinydict.get('Sex'))
# 没有设置 Salary,输出默认的值 0.0
print ('Salary: %s' % tinydict.get('Salary', 0.0))
# 输出
Age : 27
Sex : None
Salary: 0.0