python面試題常用語句

一、比較與交換
1.比較並輸出大的

print(a if a>b else b)

2.交換兩個元素

a,b = b,a
list1[i],list[j]=list1[j],list[i]

 

二、排序

1.字元串排序

s = 'aaccbgd'
print(''.join(sorted(list(s))))

2.數組排序

l = [4,5,2,3,9]
print(sorted(l))  #從小到大排序
print(sorted(l,reverse=True))  #從大到小排序

3.字典排序,轉為列表

d = {3: 2, 2: 1, 1: 3}
l1 = sorted(d.items(),key=lambda x:x[0]) #根據key排序
l2 = sorted(d.items(),key=lambda x:x[1]) #根據value排序

 

三、轉換

1.字元串-數組

s = 'abcde'
l = list(s)

2.數組-字元串

l = [1,2,4,4,3]
#s = str(l) #直轉
s = ''.join([str(x) for x in l]) #使用join連接需轉為string格式

3.字典-數組

d = {3: 2, 2: 1, 1: 3}
l1 = sorted(d.items(),key=lambda x:x[0]) #根據key排序

4 字典-數組,將兩個列表分別轉為字典的key與value

l = [1, 2, 4, 4, 3]
s = ['s', 'y', 'o', 'm', 'z']
d = dict(zip(l,s))

5.ip地址-32位整數

ip="192.168.1.1"
list_ip = list(map(int,ip.split(".")))
res = ""
for i in list_ip:
    res += str("%08d" % (int(bin(i)[2:])))
print(int(res,2))

 

四、遍歷(循環)

1.單層遍曆數組for循環

value = 0
for i in range(100):  # 累加1-100
    value += i
print(value)

2.多層遍曆數組for循環

l = [2,4,5,7,3,8,1,3]  
n = len(l)
for i in range(n):  #冒泡排序
    for j in range(n-i-1):
        if l[j] > l[j+1]:
            l[j],l[j+1]=l[j+1],l[j]

3.while遍曆數組

i = 1
while i <= 9: #列印99乘法表
    a = 1  # 列數計數器
    while a <= i:
        print("%d * %d = %d" % (a, i, i * a), end="\t")
        a += 1
    print("")
    i += 1

 

五、查找

1.字元串中查找第一個出現元素位置,無返回-1

print(s.find("a"))

2.列表中查找第一個出現的元素的位置,無報錯

print(list1.index("hello"))

3.欄位內查找對應的key的value,無返回第二個元素(可預設)

print(dict1.get("k1"))
print(dict1.get("k1",0))

 

六、遞歸

def Fibonacci(n): #斐波那契數列
    if n == 1 or n == 2:
        return 1
    elif n == 3:
        return 2
    else:
        return Fibonacci(n - 1) + Fibonacci(n - 2)

 

七、語句簡化

1.快速賦值/初始化

num,s,l,d = 0,"yes",[],{}

2.三目運算符

flag = True
print(1 if flag else -1)

3.列表推導式

x = [1,1,1]
y = [1,2,3]
z = [a+b for a in x for b in y]  #返回各種相加的結果
q = [a+b for a,b in zip(x,y)]    #返回對應下標相加的結果

4.lamda表達式

x = lambda i:i**2  #使用lambda簡化函數內容
print(x(4))
d = {3: 2, 2: 1, 1: 3}
l1 = sorted(d.items(),key=lambda x:x[0]) #使用lamda指定排序的欄位:根據key排序
l2 = sorted(d.items(),key=lambda x:x[1]) #使用lamda指定排序的欄位:根據value排序