tft每日頭條

 > 生活

 > 寫一句話讓你快速記住一個詞

寫一句話讓你快速記住一個詞

生活 更新时间:2025-01-31 05:15:23

作者:Python進階者

來源:Python爬蟲與數據挖掘

一、前言

偶然的一次機會,在隔壁群看到一個粉絲問了一道Python實現排列組合基礎問題,拿到Python白銀交流群問了一下,下圖是他的需求:

寫一句話讓你快速記住一個詞(我想從中取3個詞)1

很明顯是個排列組合的問題,直接計算組合結果:C(10,3)=(10×9×8)/(3×2×1)=720/6 =120,答案是120。

二、實現過程

這裡【瑜亮老師】直接給了一個代碼,如下所示。

from itertools import combinations word = ['魯班七号', '魯班', '魯班大師', '甄姬', '安琪拉', '王昭君', '韓信', '孫悟空', '程咬金', '豬八戒'] res = [i for i in combinations(word, 3)] print(res) print(len(res))

運行結果如下圖所示:

寫一句話讓你快速記住一個詞(我想從中取3個詞)2

可以看到運行的結果最後得到的也是120,和手動計算的一緻。

後來【const GF = null】自己也給了一個代碼,如下圖所示:

寫一句話讓你快速記住一個詞(我想從中取3個詞)3

這個方法也不錯,不過需要提前把排列組合的順序算出來才行。

後來【瑜亮老師】補充了一個方法,代碼如下所示:

word = ['魯班七号', '魯班', '魯班大師', '甄姬', '安琪拉', '王昭君', '韓信', '孫悟空', '程咬金', '豬八戒'] res = [[i, j, k] for i in word[:] for j in word[word.index(i) 1:] for k in word[word.index(j) 1:]] print(res) print(len(res))

運行結果如下圖所示:

寫一句話讓你快速記住一個詞(我想從中取3個詞)4

這個方法是用列表推導式 列表切片 index,也是能實現的,改用range(len)也是一樣的意思,其實就是3層循環,具體的層級如下所示:

res = [] for i in word[:]: for j in word[word.index(i) 1:]: for k in word[word.index(j) 1:]: res.append([i, j, k]) print(res)

運行結果如下圖所示:

寫一句話讓你快速記住一個詞(我想從中取3個詞)5

總之,完美地解決粉絲的問題啦!

不過話說回來,有現成的模塊,直接用就行了,數據量一旦比較大的話,就難頂了,推薦第一種方法!

寫一句話讓你快速記住一個詞(我想從中取3個詞)6

三、總結

大家好,我是進階者。這篇文章主要盤點了一個Python實現排列組合的問題,文中針對該問題給出了具體的解析和代碼實現,幫助粉絲順利解決了問題。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved