Python 學習筆記(一)

Laa_L發表於2019-03-22

列表

複製方式:

  • 切片法
  • list()轉換函式
  • 用*複製
  • 列表copy()函式
list_2 = list_1[:]
list_2 = list(list_1)
list_2 = list_1*1
list_2 = copy.copy(list_1)
list_2 = copy.deepcopy(list_1)

複製程式碼

區別:當列表中元素為列表時,

deepcopy():完全複製,深拷貝內外層列表

其他:深拷貝外層列表,引用內層(與原列表指向同一子列,子列的改變會相互影響)

當字典中有列表時,用copy()和deepcopy()複製字典類似

方法

函式 作用
string.spilit(separator) 分割字串組成列表
string=separator.join(list) 列表轉換為字串
函式 作用
list.append(element) 增加元素至表尾
list.extern(list_1) 合併列表
list += list_1 合併列表
函式 作用
del 語句 del list[offset] 刪除指定位置元素
list.remove(element) 刪除指定值元素
list.pop(offset) 獲取並刪除指定位置元素
函式 作用
soerted_list = soerted(list) 建立副本,重排列表元素,但不改變原列表
list.sort() 呼叫後改變原列表
list.sort(reverse = true) 降序
list.reverse() 反向列表元素

其他

  • 列表可巢狀:引用:雙層索引list[][]
  • list.spilit(separator) 分割字串包含連續分隔符,返回空串
  • pop() 不指定偏移量,預設-1

元祖

  • 元祖解包,順序賦值
  • 直接交換變數

字典

  • 鍵:不可變
可變 不可變
布林型 字串 整型 浮點型 列表 字典
  • update()合併字典
  • dict.clear()刪除所有元素
  • list(dict.keys()) 獲取所有鍵並轉換為列表
  • 類似:values() items():list()轉換
  • 字典作為引數傳入set()時,只有鍵會被引用

集合

  • set():空集
  • {}: 空字典
  • a & b 等價 a.intersection(b)
  • a | b 等價 a.union(b)
  • a ^ b 等價 a.symmetric_difference(b)
  • a <= b 等價 a.issubset(b)
  • a >= b 等價 a.issuperset(b)

迴圈

  • 比較:if、elif、else

  • while 迴圈

    continue,break跳出

    迴圈外使用else:迴圈中沒有呼叫break後的檢查

position = 0
while position < len(numbers):
    number = numbers[position]
    if number % 2 == 0:
        print('Found even number',number)
        break
    position += 1
else:
    print('No even number found')


複製程式碼
  • for 迭代

對字典鍵進行迭代:

for key in dict/dict.keys():
    print(key)
複製程式碼

對字典值進行迭代

for value in dict.values():
    print(value)
複製程式碼

以元組形式放回鍵值對

for item in accusation.items():
複製程式碼
  • zip() 並行迭代
days = ['monday','Tuesday','Wednesday']
fruits = ['banana','orange','peach']
drinks = ['coffe','tea','beer']
desserts = ['tiramisu','ice cream','pie','pudding']
for day,fruit,drink,dessert in zip(days,fruits,drinks,desserts):
	print(day,":drink",drink,"-eat",fruit,"-enjoy",dessert)
	
複製程式碼

Python 學習筆記(一)

  • zip()配對兩個元組,返回一個整合在一起的可迭代變數,配合list()和dict()轉換成列表和字典
english = 'Monday','Tuesday','Wednesday'
french = 'Lundi','Mardi','Mercredi'
print(** list **(zip(english,french)))      #配合list()轉換成列表
print(** dict **(zip(english,french)))       #配合dict()轉換成字典
複製程式碼
  • range生成自然數序列

    反向建立序列

>>> for x in range(2,-1,-1):
        print(x)
2
1
0
複製程式碼
  • 推導式

列表推導式

number_list = [expression for item in iterable if condition]

>>> number_list = [number-1 for number in range(1,6) if number% 2 == 1]
>>> number_list
[0,2,4]
複製程式碼

字典推導式

dict = {key_expression : value_expression for expression in iterable}

>>> word = 'lettter'
>>> letter_counts = {letter: word.count(letter) for letter in set(word)}  #用set(word)迭代
>>> letter_counts
{'t':2,'l':1,'e':2,'r':1,'s':1}
複製程式碼

集合推導式

>>> a_set = {number for number in range(1,6) if number % 3 == 1}
>>> a set
{1,4}
複製程式碼

生成器推導式

>>> number_thing = (number for number in range(1,6))
>>> for number in number_thing:
        print(number)
1
2
3
4
5

#對生成器推導式呼叫list()函式
>>> number_list = list(number_thing)
>>> number_list
[1,2,3,4,5]
複製程式碼

建立生成器:

1)生成器推導式

2)使用生成器函式

相關文章