feyafeya 2024-02-05 16:53 采纳率: 93.3%
浏览 5
已结题

列表批量去重整理改变格式

[['H6', 'S4'], ['H6', 'C4'], ['H6', 'S4'], ['H6', 'S6'], ['H6', 'CK'], ['H6', 'HK'], [('C4', 'S4'), ('S4', 'S4')], ['S6', 'H6'], ['CK', 'HK']]
我得出的结果里面有元组,也有嵌套列表。
1.我想要批量变成列表里面只有列表,类似于这样[['H6', 'S4'], ['H6', 'C4'], ['H6', 'S4'], ['H6', 'S6'], ['H6', 'CK'], ['H6', 'HK'], ['C4', 'S4'], ['S4',
'S4'], ['S6', 'H6'], ['CK', 'HK']]。
2.把里面相同的列表去重。

  • 写回答

5条回答 默认 最新

  • 小辰代写 2024-02-05 19:59
    关注

    我猜你实际要处理的数据比给出的要更复杂,这种不确定嵌套层数的列表最好的办法就是用递归处理,
    刚写的代码,能用的话采纳下回答谢谢:
    .

    # 初始化结果列表
    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)  # 调用函数
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项