itertools.product。
成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),微信平臺(tái)小程序開發(fā),10余年建站對(duì)PVC花箱等多個(gè)領(lǐng)域,擁有豐富的網(wǎng)站制作經(jīng)驗(yàn)。
r語言combn函數(shù)是一種排列組合的函數(shù),python中排列組合的函數(shù)是itertools.product(sequence,repeat)。
import math
m = int(input("請(qǐng)輸入第一個(gè)數(shù)字:"))
n = int(input("請(qǐng)輸入第二個(gè)數(shù)字:"))
if m 0 or n 0 or m - n 0:
print("負(fù)數(shù)是沒有階乘,請(qǐng)重新輸入!")
else:
result = math.factorial(m) / math.factorial(n) / math.factorial(m - n)
print("按照公式C(m, n) = m!/n! /(m - n)!,C({0},{1})的答案為 {2}".format(m, n, result))
enumerate(x,y)函數(shù)是把元組tuple、字符串str、列表list里面的元素遍歷和索引組合,其用法與range()函數(shù)很相似,
下面示例enumerate(x,y)用法以及range(x)相似的用法,但是,enumerate(x,y)函數(shù)在遍歷excel等時(shí),可以實(shí)現(xiàn)與人視覺了解到的認(rèn)識(shí)更好的理解。
enumerate(x,y)中參數(shù)y可以省略,省略時(shí),默認(rèn)從0開始,
如示例一:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words):
print(idx,word)
打印結(jié)果:
使用range()函數(shù)遍歷實(shí)現(xiàn):
list_words=["this","is","blog","of","white","mouse"]
for? i in range(len(list_words)):
print(i,list_words[i])
打印結(jié)果:
自定義開始索引號(hào):
示例二:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words[1:],2):#也可以寫成for idx,word in enumerate(list_words,start=2):
print(idx,word)
打印結(jié)果:
從上面示例中可以看出,enumerate(x,y)中x是需要遍歷的元組tuple、字符串str、列表list,可以和切片組合使用,
y是自定義開始的索引號(hào),根據(jù)自己的需要設(shè)置開始索引號(hào)。
#!/usr/bin/env?python?
#?-*-?coding:?UTF-8?-*-?
#python2.7?
import?string,random
def?get_clice(num):
res?=[]?
tmp?=?list(string.lowercase)
for?i?in?range(num):
res.append(''.join(random.sample(tmp,random.randint(3,7))))
return?res
print?get_clice(20)