python 百天面試題(1-10)

前言:

當所有人都在嘲笑你的時候,只有你自己不可以。

1. 分別寫一個filter(), reduce(), map() 的使用實例

# filter 接受一個函數和一個序列
def is_num(n):
	return isinstance(n, int)
seq = [1, 3, 5.5, "a", 0]
res = filter(is_num, seq)
print([r for r in res])  # python3 filter生成的是一個迭代器對象。
# reduce 接受一個函數(必須是兩個參數)和一個序列,先處理序列中的前兩個值,然後將得到的值與序列中的第三個值進行函數的運算。
from functools import reduce  # py3 中直接引用reduce會報錯 reduce未定義
def add(x, y):
	return x + y
seq = [1, 3, 5.5,6,89, 9]
res = reduce(add, seq)
print(res)
# map 函數可以接受一個或多個序列,接受多個序列則會將兩個序列中指定位置的參數進行函數的運算,類型必須一致
def square(x, y):
    return x**2 + y**2

seq = [1, 2, 3, 4, 5, 6]
seq1 = [1, 2, 3, 4, 5]
res = map(square, seq, seq1)
print([r for r in res])

2. python中如何實現tuple和list的轉換

t = tuple([1,2,3,4,5,6])
print(type(t))
l = list(t)

3. 實現python中list的去重

# 最簡單 集合 set去重 然後list轉爲列表
# 使用dict的hash特性
# 使用兩個列表對比去重

l = [1,2,3,4,5,6, 1, 2,3,4]
# 1
l1 = set(l)
print(list(l1))

# 2
l2 = []
for i in l:
    if i not in l2:
        l2.append(i)
print(l2)

# 3

4. python中pass語句的作用

5. python中單雙三引號的區別

6. 以下代碼輸出什麼?

class Parent(object):
    x = 1

class Child1(Parent):
    pass

class Child2(Parent):
    pass

print(Parent.x, Child1.x, Child2.x)
Child2.x = 2
print(Parent.x, Child1.x, Child2.x)
Parent.x = 3
print(Parent.x, Child1.x, Child2.x)
主要考慮python的繼承機制
輸出:
1 1 1
1 1 2
3 3 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章