1、编程试题:
编写一个程序来生成两个列表的所有唯一组合。
定义函数unique_combinations(),它接受两个列表作为参数,list_a和list_b。
该函数返回由将第一个列表的每个元素与第二个列表的元素配对形成的唯一组合的列表。
示例输入
a b
1 2
示例输出
[('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')]
2、代码实现:
可编辑代码如下:
#!/usr/bin/python3.9
# -*- coding: utf-8 -*-
#
# Copyright (C) 2024 , Inc. All Rights Reserved
#
# @Time : 2024/3/9 9:39
# @Author : fangel
# @FileName : 142. 两个列表的所有唯一组合.py
# @Software : PyCharm
def unique_combinations(list_a, list_b):
resList = []
# 进行两轮循环
for a in list_a:
# 进入循环时将a列表元素加入到tmp列表
list_tmp = [a]
for b in list_b:
list_tmp.append(b)
# 转换成元组后加入到返回列表中
resList.append(tuple(list_tmp))
# 将刚添加的元素删除后以便进行下一轮循环
list_tmp.remove(b)
return resList
# 获取用户输入
list_a = input().split()
list_b = input().split()
# 调用函数
print(unique_combinations(list_a, list_b))
3、代码分析:
本例通过两个循环搞定,注意将字符串元素转换成元组后再加入到列表里
4、运行结果:
输入:
apple banana
red yellow
输出:
[('apple', 'red'), ('apple', 'yellow'), ('banana', 'red'), ('banana', 'yellow')]
输入:
a b c
d e
输出:
[('a', 'd'), ('a', 'e'), ('b', 'd'), ('b', 'e'), ('c', 'd'), ('c', 'e')]