尝试从字典列表中加载到列表列表中

时间:2019-03-24 16:32:46

标签: python list dictionary

我正在尝试从字典项目列表加载到Python 2.7中的列表列表。当前数据看起来像下面的20行:

[{'professional:xp': '100', 'personal:power': 'fly', 'personal:hero': 'yes', 'custom:color': 'black', 'professional:name': 'batman'}, {'professional:xp': '86', 'personal:power': 'think', 'personal:hero': 'no', 'custom:color': 'grey', 'professional:name': 'gandalf'}, ...]

我想做这样的事情:

[[100, 'fly', 'yes', 'black', 'batman'][86, 'think', 'no', 'grey', 'gandalf']...]

我尝试了很多不同的循环方法,但是我没有得到结果。

i = -1
j = -1
scanList = []
joinList = [[]]

for item in scanList:
    i = i+1
    for k, v in item.iteritems():
        j= j+1
        joinList[i][j].append(v)

我想到了通过嵌套循环加载列表的想法(预先,我不知道我的i和j是否在正确的位置,但是我可以解决这个问题)。我只是不断摆脱索引错误,而且不知道是否应该初始化列表列表?

4 个答案:

答案 0 :(得分:4)

现在是学习列表理解的好时机。还请注意,[dict].values()方便地返回字典中的值列表。

joinList = [d.values() for d in scanList]

请注意,在Python 3.x values()中会返回一个 view对象,该对象必须明确地转换为列表:

# Python 3.x version
joinList = [list(d.values()) for d in scanList]

答案 1 :(得分:1)

您可以使用values function获取字典的值。现在,您必须遍历字典并调用它们的值:

%hook SBMainSwitcherViewController

-(void)viewDidLoad {
%orig;
UIAlertController * alert=[UIAlertController 

alertControllerWithTitle:@"AppSwitcher" message:@"Clear cache"preferredStyle:UIAlertControllerStyleAlert];

   UIAlertAction* yesButton = [UIAlertAction
                        actionWithTitle:@"Thank God !"
                        style:UIAlertActionStyleDefault
                        handler:^(UIAlertAction * action)
                        {
                        }];
   [alert addAction:yesButton];
   [self presentViewController:alert animated:YES completion:nil];
}

%end

答案 2 :(得分:1)

您可以使用以下代码:

for item in scanList:
    list = []
    for key, value in item.iteritems():
        list.append(value)
    joinlist.append(list)

答案 3 :(得分:1)

data=[{'professional:xp': '100', 'personal:power': 'fly', 'personal:hero': 'yes', 'custom:color': 'black', 'professional:name': 'batman'}, {'professional:xp': '86', 'personal:power': 'think', 'personal:hero': 'no', 'custom:color': 'grey', 'professional:name': 'gandalf'}]

new_data=[list(j.values()) for j in data]
print(new_data)

输出

[['yes', 'black', 'batman', 'fly', '100'], ['no', 'grey', 'gandalf', 'think', '86']]