python面试题

Posted ellisonzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python面试题相关的知识,希望对你有一定的参考价值。

给定数组[0-9] 和 boll_array[0111011110], 0表示可以输出,
也可以不输出,1必须输出对应位,输出所有可能情况(按字符串升序)
import copy
a = [0,1,2,3,4,5,6,67,8,9] # 数字数组
b = [0,1,1,1,0,1,1,1,1,0] # 对应的布尔值数组
# b = list(map(int,input(">>>").strip().split()))
index = []
for i in range(0,len(b)):
    if b[i] == 1:
        b[i] = str(i) # 将布尔值为1的位置赋予对应的数值
    if b[i] == 0:
        index.append(i) # 记录布尔值为0的位置索引
        b[i] = ‘‘ # 同时赋予空
# print(b)
res = [b]
# print(res)
for ind in index:
    # count=0
    for i in range(len(res)):#第一次循环一次,第二次循环二次,第三次循环四次
        # count  += 1
        # print(res[i])
        c = copy.copy(res[i])
        c[ind] = str(ind) # 对结果列表中的每个组合依次添加布尔值为0的位置所对应的数字
        # print(c)
        res.append(c)
print(res)
    # print(count)
for i in range(len(res)):
    res[i] = ‘‘.join(res[i])
res.sort() # 排序
for i in res:
    print(i)

第一层循环 ind=0时 此时res中存在时着原始列表[‘‘, ‘1‘, ‘2‘, ‘3‘, ‘‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘],c拷贝一份并将0赋给c[0],然后将c加到res中

此时res=[[‘‘, ‘1‘, ‘2‘, ‘3‘, ‘‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘],[‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘]] ind=0循环完毕

ind=4时,第二层循环循环二次,c分别拷贝了res并将4赋给c[4],然后依次加入到了res中,此时

res=

[[‘‘, ‘1‘, ‘2‘, ‘3‘, ‘‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘],
 [‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘], 
[‘‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘],
 [‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘‘]]

ind=9时,第二层循环循环四次,c分别拷贝了res并将9赋给c[9],然后依次加入到了res中

最终
列表输出结果
[[‘‘, 1, 2, 3, ‘‘, 5, 6, 7, 8, ‘‘],
 [0, 1, 2, 3, ‘‘, 5, 6, 7, 8, ‘‘], 
[‘‘, 1, 2, 3, 4, 5, 6, 7, 8, ‘‘],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, ‘‘], 
[‘‘, 1, 2, 3, ‘‘, 5, 6, 7, 8, 9],
 [0, 1, 2, 3, ‘‘, 5, 6, 7, 8, 9],
 [‘‘, 1, 2, 3, 4, 5, 6, 7, 8, 9],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

Process finished with exit code 0

 










以上是关于python面试题的主要内容,如果未能解决你的问题,请参考以下文章

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)