我有一个简单的问题
我有这样的地图列表
List(
Map("a" -> "a"),
Map("b" -> "b")
)
我想要这样的结果
Map(
"a"->"a",
"b"->"b"
)
如果密钥是重复的,则可以覆盖 任何人请帮帮我
答案 0 :(得分:5)
您可以合并flatten
和toMap
:
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})
这样您就无需转换为任何中间数据类型。