2. 組合
需求1:
將兩個列表進行排列,有多少種結果?
接受多個可迭代物件
解決1:
from itertools import product
li =[1
,2,3
]result =
list
(product(li, li)
)print
(result)
注意:這種方法可以為相同或不同的多個個列表
結果1:
[(1
,1),
(1,2
),(1
,3),
(2,1
),(2
,2),
(2,3
),(3
,1),
(3,2
),(3
,3)]
延伸1:
接受乙個可迭代物件和長度引數。
如果進行排列的是自身,則可以使用引數repeat,僅對自身
任意個列表進行排列:
from itertools import product
li =[1
,2,3
]result =
list
(product(li, repeat=2)
)print
(result)
# 結果同上
注意:這裡都為相同的多個列表
解決2:
輸入乙個可迭代引數,如:列表、元組等。每個元素會被當做整體來進行排列
from itertools import permutations
li =[1
,2,3
]result =
list
(permutations(li)
)print
(result)
注意:這裡可以省去長度引數,不是必須的。當省去時,為全排列。
結果2:
[(1
,2,3
),(1
,3,2
),(2
,1,3
),(2
,3,1
),(3
,1,2
),(3
,2,1
)]
需求1:
將兩個列表進行組合,有多少種結果?
補充1:
組合與排列不同,組合無序,所以無需將兩個列表按照先後循序來進行排列,而是可以直接合併兩個表,根據需要的結果長度來規定長度,進行組合。
解決1:
接受可迭代物件
from itertools import combinations
li1 =[1
,2,3
]li2 =[2
]li_sum = li1 + li2
result =
list
(combinations(li_sum,3)
)print
(result)
這裡對乙個總表進行組合即可,後面指定引數表示結果長度
注意1:該方法必須要有指定長度引數
結果1:
[(1
,2,3
),(1
,2,2
),(1
,3,2
),(2
,3,2
)]
同上,但是包含自身和自身元素的組合。即有重複元素。
from itertools import combinations_with_replacement
li =[1
,2,3
]result =
list
(combinations_with_replacement(li,2)
)print
(result)
注意2:該方法同樣必須要有指定長度引數
結果2:
[(1
,1),
(1,2
),(1
,3),
(2,2
),(2
,3),
(3,3
)]
python學習筆記3 python讀寫檔案
一 檔案的開啟模式 1 開啟檔案 1 f open d a.txt w 第乙個引數是檔案的路徑,如果只寫檔案的名字,預設是在當前執行目錄下的檔案 第二個引數是檔案的開啟模式 這種方式開啟檔案,在使用完了之後一定要記得,關閉檔案 f.close 2 with open d a.txt w as f 這...
3,Python中的序列
2 元組 字典列表屬於可變序列,可以任意改變其中的元素。a 19.8,5 jacub true,5 列表可以包含各種型別的元素 b len a b的值是列表a的長度 元素的數量 print a 2 列印列表a中索引為2的元素 print a.index 19.8 列印列表a中 19.8 這個元素的索...
Python學習總結3 Python基礎
一 介紹 python採用縮排方式 print absolute value of an integer a 100 if a 0 print a else print a 其中,為注釋。縮減用4個空格表示。其他每一行都是乙個語句,當語句以冒號 結尾時,縮排的語句視為 塊。二 資料型別 2.整數 包...