单行字典到单行字典

时间:2017-11-13 15:34:44

标签: python dictionary

您如何将多行字典转换为一个字典?

例如,当前字典(如果打印到屏幕上)的格式为:

{'keyword':'value'}
{'keyword':'value'}
{'keyword':'value'}
{'keyword':'value'}

......等等超过100行。如何将其转换为以下形式:

{'keyword':'value','keyword':'value','keyword':'value','keyword':'value'}

3 个答案:

答案 0 :(得分:1)

假设您要求将多个字典(不是多行字典)添加到一个字典中。

public void handleHomeFragmentVisibility(){
        FragmentManager fragmentManager=  getSupportFragmentManager();
        if (fragmentManager.findFragmentByTag("home") != null) {
            //if the fragment exists, show it.
            fragmentManager.beginTransaction().show(fragmentManager.findFragmentByTag("home")).commit();
        } else {
            //if the fragment does not exist, add it to fragment manager.


            Log.e(TAG,"homeFragmentAdded");
            fragmentManager.beginTransaction().add(R.id.container, new HomeFragment(), "home").commit();
        }
        if (fragmentManager.findFragmentByTag("dashboard") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("dashboard")).commit();
        }
        if (fragmentManager.findFragmentByTag("requests") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("requests")).commit();
        }

    }

    public void handleDashboardFragmentVisibility(){
        FragmentManager fragmentManager=  getSupportFragmentManager();
        if (fragmentManager.findFragmentByTag("dashboard") != null) {
            //if the fragment exists, show it.
            fragmentManager.beginTransaction().show(fragmentManager.findFragmentByTag("dashboard")).commit();
        } else {
            //if the fragment does not exist, add it to fragment manager.

            fragmentManager.beginTransaction().add(R.id.container, new DashboardFragment(), "dashboard").commit();
        }
        if (fragmentManager.findFragmentByTag("home") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("home")).commit();
        }
        if (fragmentManager.findFragmentByTag("requests") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("requests")).commit();
        }

    }
    public void handleNotificationFragmentVisibility(){
        FragmentManager fragmentManager=  getSupportFragmentManager();
        if (fragmentManager.findFragmentByTag("requests") != null) {
            //if the fragment exists, show it.
            fragmentManager.beginTransaction().show(fragmentManager.findFragmentByTag("requests")).commit();
        } else {
            //if the fragment does not exist, add it to fragment manager.

            fragmentManager.beginTransaction().add(R.id.container, new NotificationFragment(), "requests").commit();
        }
        if (fragmentManager.findFragmentByTag("home") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("home")).commit();
        }
        if (fragmentManager.findFragmentByTag("dashboard") != null) {
            //if the other fragment is visible, hide it.
            fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("dashboard")).commit();
        }
    }

 bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {

            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                FragmentManager fragmentManager = getSupportFragmentManager();
                switch (item.getItemId()) {
                    case R.id.navigation_home:
                        selectedId=0;
                       handleHomeFragmentVisibility();
                        break;
                    case R.id.navigation_dashboard:
                    selectedId=1;
                     handleDashboardFragmentVisibility();

                        break;
                    case R.id.navigation_notifications:
                   selectedId=2;
                      handleNotificationFragmentVisibility();
                        break;

                }

                return true;
            }
        });

答案 1 :(得分:1)

假设您的初始数据实际上是一个词典列表,并且您的所有词典中的键都是唯一的,我会使用类似的词 -

example = [{'a':1}, {'b':2}, {'c':3}]

objOut = {}
for d in example:
    for k,v in d.iteritems():
        objOut[k] = v

OR

objIn = [{'a':1}, {'b':2}, {'c':3}]

objOut = {}
for d in objIn:
    objOut.update(d)


print objOut

答案 2 :(得分:0)

鉴于

dicts = [{'a':1}, {'b':2}, {'c':3, 'd':4}]

{k:v for d in dicts for (k, v) in d.items()}

from itertools import chain
dict(chain(*map(dict.items, dicts)))

导致

{'a': 1, 'b': 2, 'c': 3, 'd': 4}