Python基礎-4

一、filter

filter能夠進行過濾,和map的使用方式同樣。python

二、yield

在Python中,若是函數中帶有yield,則表示該函數是一個生成器generator。當運行到yield時,就返回yield後面的值。而後在下一次繼續從yield下一個語句繼續執行。app

例如:楊輝三角函數

def triangles():
    L = [1]
    while 1:
        yield L
        L = [0] + L + [0]
        L = [L[i] + L[i + 1] for i in range(len(L) - 1)]

t = triangles()

while 1:
    print(next(t))

結果以下:
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
...

三、sorted

排序函數。這個函數能夠對list進行排序,在元素是字符串時候或者想要自定義時候能夠傳入排序的函數。code

sorted(list, key = method)對象

sortedList = sorted([1, -4, 5, 44, -443, 45, 78])
print(sortedList)

sortedList = sorted([1, -4, 5, 44, -443, 45, 78], key=abs)
print(sortedList)

# reverse 對排序進行反轉
sortedList = sorted([1, -4, 5, 44, -443, 45, 78], key=abs, reverse=True)
print(sortedList)

對tuple的排序排序

# 假設咱們用一組tuple表示學生名字和成績:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

# 按名字排序
def by_name(t):
    return t[0]

# 分數排序
def by_score(t):
    return t[1]


print(sorted(L, key=by_name))

print(sorted(L, key=by_score))

四、list,tuple,set,dict的使用

  1. listrem

    list是一個有序的集合,能夠隨意的增長和刪除。先定義:L = [2,4,5,45,7]字符串

    (1)、增長到末尾 :get

    L.append(666)  
     或者
     L = L + [666]
     結果: 
     [2,4,5,45,7,666]

    (2)、插入到指定位置:generator

    L.insert(0, 777) # 把777插入到第一個位置
     或者
     L = [777] + L
     結果:
     [777, 2, 4, 5, 45, 7]

    (3)、取值:

    n = L[2]   # 取第幾個元素
    
     n = L[-1]  # 或者從後往前取,取倒數第一個(-1),倒數第二個(-2)

    (4)、刪除:

    L.pop(i)  # 刪除第i個元素
    
     L.pop()   # 沒有序號,則默認刪除最後一個元素

    (5)、替換:

    # 直接設置要替換的值
     L[i] = 888
  2. tuple

    tuple是不可變的list。

    T = () # 定義一個空tuple
     T = (4,) # 定義只有一個元素的tuple,須要在()裏面加一個逗號「,」,否則會被當成數字。

    (1)、取值:和list取值同樣

    t = T[1] # 取第二個元素

    (2)、替換:若是被替換的值是對象,該對象裏面的值能夠修改,其餘的不能修改。

  3. set

    set是一種無序且不重複的相似list 的集合。

    S = {1,3,4,5,7}  # 定義一個set

    (1)、增長:

    S.add(666)  # 添加一個元素

    (2)、刪除

    S.remove(666) # 刪除666這個元素
  4. dict dict對應Java中的map。在Python中是字典。

    d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

    (1)、增長/替換:

    d['zfskkk'] = 98 # 增長一對key-value,若是key已經存在,則會覆蓋先前的值。

    (2)、取值:

    value = d['zfskkk'] # 取值。若是該key不存在,則會報錯。
     value = d.get('zfskkk', -1) # 若是key不存在,返回None。若是有默認值,則返回默認值。

    (3)、刪除:

    d.pop('zfskkk') # 若是key不存在則報錯。

    (4)、判斷key是否存在

    'zfskkk' in d
相關文章
相關標籤/搜索