0基础教程习题1—求三位数组合

三位数组合


1、题目要求

 

已知有一个list,里面有4个数字,分别是3,6,2,7 ,这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们


 

2、程序分析
  1. 三层嵌套循环,每一层循环从list中取出一个数字,这三个数字组成一个三位数
  2. 组成的三位数互不相同,且没有重复数字,这需要对取出来的三个数字进行去重

3、示例代码

 

#coding=utf-8
lst = [3,6,2,7]
number_lst = []
for i in lst:
   for j in lst:
       for k in lst:
           if i != j and i != k and j != k:
               number_lst.append(
       '{first}{second}{third}'.format(
               first=i,second=j,third=k))

print u'共有{count}个符合条件的数字'.format(
   count=len(number_lst))
for item in number_lst:
   print item

4、习题小结
  • 三层for循环嵌套,很像机械表里的齿轮,外层是大齿轮,里面是小齿轮,大此轮转一圈,小齿轮要转很多圈
  • 注意字符串format的用法,首先要在字符串里定义哪个区域是需要被替换的,并在大括号里定义一个名字,然后在format函数的参数里指明这个名字被谁替换