将相同的值与Python中的字典列表组合

时间:2018-08-16 14:22:57

标签: python

我正在使用python构建表。该表的行包含在词典列表中,如下所示:

table = [{ 'User' : 'johndoe', 'Profile' : 'Production', 'Risk' : 'No MFA', 'Action': 'Disable account and notify user' }, 
         { 'User' : 'janedoe', 'Profile' : 'Production', 'Risk' : 'Expired Password', 'Action': 'Reset password and notify user' },
         { 'User' : 'cookiedoe', 'Profile' : 'Non-Production', 'Risk' : 'Expired key', 'Action': 'Delete old key and notify user' },]

每次检测到不符合条件时,我都会运行一个函数来构建行。我的目标是合并“用户”和“个人资料”相同的行。例如,如果Production中的johndoe也有一个过期的密码,我希望他的字典看起来像这样:

{ 'User' : 'johndoe', 'Profile' : 'Production', 'Risk' : 'No MFA, Expired password', Action: 'Disable account and notify user\n Reset password and notify user' }

每个当前行都生活在名为“ row”的本地词典中。这就是我现在想要完成的方式:

for past_row in table:

     past_user = past_row['User']
     row_user = row['User']
     past_profile = past_row['Profile']
     row_profile = row['Profile']

     if past_user == row_user and past_profile == row_profile:

           past_row['Risk'] = "%s, %s" %(past_row['Risk'], row['Risk'])
           past_row['Action'] = "%s\n %s" %(past_row['Action'], row['Action'])

我的Python脚本无限运行,而且从未完成。我感觉自己在低效率地检查过去的行,而且我还很年轻,接受过Python语言教育。围着谷歌搜索只是让我的逻辑更加混乱。有人可以让我挺直吗?

1 个答案:

答案 0 :(得分:1)

好的,我想出了一个快速解决方案。它可以更高效地完成,但是,请记住您是Python的初学者,我将重点放在可读性上。它就到了(脚本可以按原样执行):

if (!Utils.getProcessName(this).equals("YOUR_SECOND_PROCESS_NAME")) {
    MobileAds.initialize(this);
} else {
    WebView.setDataDirectorySuffix("dir_name_no_separator")
}

从某种意义上说,此脚本是通用的,可用于多个匹配的配置文件,而不仅仅是对。