【Python】案例:多维列表拆分和去重

本文介绍了一段Python代码,用于处理嵌套列表,拆分包含两个元素的元组,并去除列表中的重复项,以实现数据清洗和结构优化,适用于IT技术相关场景。
摘要由CSDN通过智能技术生成

1.问题

原始数据:[['H6', 'S4'], ['H6', 'C4'], ['H6', 'S4'], ['H6', 'S6'], ['H6', 'CK'], ['H6', 'HK'], [('C4', 'S4'), ('S4', 'S4')], ['S6', 'H6'], ['CK', 'HK']]

要求:

1.将列表中函有两个元素的列表和元组拆分出来,形成一个新的二维列表

2.将列表中的元组元素改为列表元素

3.去除相同的列表项

2.代码

# 初始化结果列表
result_list = []
# 示例嵌套数组
nested_array = [['H6', 'S4'], ['H6', 'C4'], ['H6', 'S4'], ['H6', 'S6'], ['H6', 'CK'], ['H6', 'HK'],
                [('C4', 'S4'), ('S4', 'S4')], ['S6', 'H6'], ['CK', 'HK'], [['H6', 'S4']]]

def split_list(array):
    for item in array:
        if isinstance(item, str):
            return "arr"
        else:
            end = split_list(item)
            if end == "arr":
                result_list.append(item)

def chang_tuple():
    for item in range(0, len(result_list)):
        if isinstance(result_list[item], tuple):
            new_list = [result_list[item][0], result_list[item][1]]
            result_list[item] = new_list

def main(result_list):
    # 调用递归函数,拆分列表
    split_list(nested_array)
    # 将元组转换为列表
    chang_tuple()
    # 列表去重
    result_list = list(map(list, set(map(tuple, result_list))))
    # 打印结果
    print(result_list)

main(result_list)  # 调用函数

3.分析

1.split_list(array)

使用递归的方法逐层遍历每层列表中的项目,当检测到当前列表或元组的下一层是字符串时(end == "arr")将该列表项添加到结果列表中等待下一步处理。

2.chang_tuple()

遍历拆分后列表中的每一项,当检测到某一项是元组时提取元组中的数据形成新的列表,然后覆盖原有的元组

3.result_list = list(map(list, set(map(tuple, result_list))))

map(tuple, original_list) 将每个子列表转换为元组,然后 set 将元组集合化,去除重复项,最后 map(list, ...) 将元组转回为列表,得到去重后的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小辰代写

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值