Pythonケース001(4つの数字:1、2、3、4があり、互いに異なり、重複していない3桁の数を構成することができます)...

1853 ワード

テーマの内容はネットから来て、個人の理解の過程に参加して、評論と
#!/usr/bin/python
# -*- coding: UTF-8 -*-

#Author : Wumi

#  :     :1、2、3、4,                    ?    ?
#    :     、  、       1、2、3、4。                    。

#             ,        
num =[] # list
for i in range(1,5): # range           
    for j in range(1,5):
        for k in range(1,5):
            if i!=j and i != k and  j!=k :
                print i,j,k
                print k,j,i # reverse num
                num.append([i,j,k])
print "how many num we have of the permutation and combination :",len(num)   # 24

# big tall up
# for   if       ,       

lists =[ (i*100+10*j+k) for i in range(1,5) for j in range(1,5) for k in range(1,5) if ( i!=j and i !=k and j!=k )]
print len(lists)
print len(lists),":",lists

# use set function to remove the duplicate numbers    ,set         
# one important tips is that the alphabet can uses join function +
alphabetList = ['1','2','3','4']
numberList = [ int(i+j+k) for i in alphabetList for j in alphabetList for k in alphabetList if (len(set(i+j+k)) ==3)]
print numberList ,":",len(numberList)
# question is why i != k and != j ?             ??    111 or 122  

# here is the core reason ::
lists =['1','2','3']
for i in lists:
    for j in lists:
        print set(i+j) # add memeber into set using plus +  ---> set(['1', '2'])  ,no replicate data
        print int(i+j)
"""
set(['1'])
11
set(['1', '2'])
12
set(['1', '3'])
13
set(['1', '2'])
21
set(['2'])
22
set(['3', '2'])
23
set(['1', '3'])
31
set(['3', '2'])
32
set(['3'])
33
"""

転載先:https://www.cnblogs.com/TendToBigData/p/10501231.html