python - 删除多个嵌套列表中的重复列表项

标签 python python-3.x

我有以下列表:

values = [
    ['registrationController', 'regBean', 'firstName'],
    ['registrationController', 'regBean', 'surname'],
    ['registrationController', 'regBean', 'userName'],
    ['registrationController', 'regBean', 'password'],
    ['registrationController', 'regBean', 'confirmPassword'],
    ['registrationController', 'regBean', 'emailAddress'],
    ['registrationController', 'regBean', 'confirmEmail'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerOne', 'question'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerOne', 'answer'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerTwo', 'question'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerTwo', 'answer'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerThree', 'question'],
    ['registrationController', 'regBean', 'securityQuestionAndAnswerThree', 'answer'],
    ['registrationController', 'regBean', 'tAndCAccepted']
]

我正在尝试找出如何删除此列表中所有预设值并在 当他们变得独一无二时,他们会得到这样的东西:

unique_values = [
    ['firstName'],
    ['surname'],
    ['userName'],
    ['password'],
    ['confirmPassword'],
    ['emailAddress'],
    ['confirmEmail'],
    ['securityQuestionAndAnswerOne', 'question'],
    ['securityQuestionAndAnswerOne', 'answer'],
    ['securityQuestionAndAnswerTwo', 'question'],
    ['securityQuestionAndAnswerTwo', 'answer'],
    ['securityQuestionAndAnswerThree', 'question'],
    ['securityQuestionAndAnswerThree', 'answer'],
    ['tAndCAccepted']
]

有什么想法可以实现这个目标吗?我尝试了各种方法,但无法真正接近可行的解决方案。

最佳答案

使用集合交集来获取所有公共(public)元素和嵌套列表理解来构建清理后的列表:

common = set(values[0])
for lst in values[1:]:
    common = common.intersection(lst)

unique_values = [[v for v in lst if v not in common] for lst in values]

关于python - 删除多个嵌套列表中的重复列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085809/

相关文章:

python - 将Python中定义的函数更改为lambda函数

python - 用循环中的行填充现有数据框

javascript - 用户必须采取措施才能使页面重定向在 Flask 中正常工作

python - 在 python3 中使用 readline 自动完成

python - 用正则表达式替换不需要的字符

python - 如何在异常中获取模块名称

python - 如何创建假装提供 Python 模块的虚拟 RPM?

python - Kivy kv 文件的行为与 Builder.load_string 不同

python - 如何在 matplotlib 极坐标 2D 直方图中创建曲线箱?

python - Tensorflow DNNClassifier 和 scikit-learn GridSearchCV 问题