scala convert地图列表

时间:2017-03-09 09:06:11

标签: scala

我有一个简单的问题

我有这样的地图列表

List(
      Map("a" -> "a"),
      Map("b" -> "b")
    )

我想要这样的结果

Map(
  "a"->"a",
  "b"->"b"
)

如果密钥是重复的,则可以覆盖 任何人请帮帮我

2 个答案:

答案 0 :(得分:5)

您可以合并flattentoMap

val list = List(Map("k1" -> "v1", "k2" -> "v2"))
list.flatten.toMap // Map(k1 -> v1, k2 -> v2)

flatten会将地图列表转换为元组列表,然后toMap会将您的元组列表转换为地图。

答案 1 :(得分:1)

您可以尝试使用reduce:

from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User
from django.views.generic import View
from django.utils import timezone
from django.contrib.auth import ( 
    authenticate, 
    get_user_model, 
    login, 
    logout,
    )
from .forms import UserLoginForm, UserRegisterForm, UserForm, PostForm
from .models import Post

def login_view(request):
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        u = User.objects.get(username=username)
        posts = objects.for_user(request.user)
        if username and password:
            user = authenticate(username= username, password= password)
            if not user:
                return render(request, 'post/login.html',{'error_message': 'Incorrect username or password'})
        if not user.is_active:
            return render(request, 'post/login.html', {'error_message': 'Your account has been disabled'})
        if user.is_active:
            login(request, user)
            return render(request, 'post/home.html', {'u' : u, 'posts': posts})
return render(request, 'post/login.html')

class register_view(View):
    form_class = UserRegisterForm
    template_name = 'post/register.html'

    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form}) 

    def post(self, request):
        form = self.form_class(request.POST)   

        if form.is_valid():
            user = form.save(commit=False)
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user.set_password(password)
            user.save()

            new_user = authenticate(username= username, password=     password)

            if new_user is not None:

                if user.is_active:        
                    login(request, new_user)
                    return redirect('post/home.html')

        return render(request, self.template_name, {'form' : form})

def logout_view(request):
    logout(request)
    form = UserForm(request.POST or None)

    return render(request, 'post/login.html', {'form' : form})

def post_list(request):
    posts =     Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')

    return render(request, 'post/post_list.html', {'posts': posts})


def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)

    return render(request, 'post/post_detail.html', {'post': post})

def post_new(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()

     return render(request, 'post/post_edit.html', {'form': form})

这样您就无需转换为任何中间数据类型。