

素人質問で恐縮ですが、下記コード中の

[code]

    output = ', '.join([q.question_text for q in latest_question_list])
    
[/code]

部分が何をしているのかわかりません。「「,」で区切って`question_text`を入れている」のかと思ったのですが、  
後に`for`文が続く`join`に初めて遭遇し、ググってもよく理解できませんでした。「「,」で区切って、`latest_question_list`の各要素（＝`question_text`?)ごとに`question_text`を入れている」のだとすると、`question_text`も`for
q in latest_question_list`の各要素も両方`question_text`なので混乱してきます…

どなたかこのコードの意味をご教授いただけないでしょうか。

**polls/views.py**

[code]

    from django.http import HttpResponse
    
    from .models import Question
    
    # q.question_textのオブジェクトは<Question: What's new?>の一個のみです
    
    def index(request):
        latest_question_list = Question.objects.order_by('-pub_date')[:5]
        output = ', '.join([q.question_text for q in latest_question_list])
        return HttpResponse(output)
    
    # Leave the rest of the views (detail, results, vote) unchanged
    
[/code]

**models.py**

[code]

    import datetime
    
    from django.db import models
    from django.utils import timezone
    
    # Create your models here.
    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published2')
        def __str__(self):
            return self.question_text
    
        def was_published_recently(self):
            return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
    
    class Choice(models.Model):
        question = models.ForeignKey(Question, on_delete=models.CASCADE)
        choice_text = models.CharField(max_length=200)
        votes = models.IntegerField(default=0)
        def __str__(self):
            return self.choice_text
    
[/code]


CC BY-SA 4.0
2020-01-16T10:59:38.817
62295
2020-01-17T06:43:14.550
2020-01-16T11:41:43.293
32986
36974
question
python sql django
djangoのviews.pyの中でjoinが何をしているのか


最新の質問を「, 」で連結しています。

[code]

    >>> q_list = ['aa', 'bb', 'cc']
    >>> output = ', '.join([q for q in q_list])
    >>> output
    'aa, bb, cc'
    
[/code]

**補足**

> 後にfor文が続くjoinに初めて遭遇し、ググってもよく理解できませんでした。

このページを読むと分かると思います。

<https://note.nkmk.me/python-list-comprehension/>


CC BY-SA 4.0
2020-01-16T11:12:36.610
62296
2020-01-17T06:43:14.550
2020-01-17T06:43:14.550
21092
21092
62295
answer