嵌套元组唯一元素

Python挑战练习-进阶挑战42

编写一个程序来提取嵌套元组中的唯一元素。

例如,在嵌套元组((1,2,3),(2,4,6),(2,3,5))中,2重复出现了3次,3重复出现了2次,但我们的输出列表只会包含23一次。

即:[1, 2, 3, 4, 5, 6]

  • 定义函数get_unique_elements(),函数接受一个参数 - 一个包含三个元组的嵌套元组。

  • 在函数内,提取所有元组中的独立元素,确保不重复提取元素。

  • 以列表的形式返回唯一的元素,并从小到大排序。


分析:不重复提取元素,也就是去重复,想到了可以利用集合的特点,但是本题不能直接转化成集合,因为输入的是一个嵌套元组,直接转的话,元组将作为集合中的一个元素,因此要写两个for循环,先循环遍历嵌套元组中的每个子元组,再循环遍历子元组中的每个元素

def get_unique_elements(nested_tuple):
    unique_elements = set()
    for sub_tuple in nested_tuple:
        for element in sub_tuple:
            unique_elements.add(element)
    unique_list = list(unique_elements)
    unique_list.sort()
    return unique_list


# 初始化嵌套元组
nested_tuples = []

# 获取用户输入
for _ in range(3):
    tuple_elements = tuple(map(int, input().split()))
    nested_tuples.append(tuple_elements)

# 调用函数
print(get_unique_elements(nested_tuples))

 利用列表推导式和sorted函数

def get_unique_elements(nested_tuple):
    unique_elements = set(element for sub_tuple in nested_tuple for element in sub_tuple)
    return sorted(unique_elements)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值