Я хочу удалить кортежи и ' ' из списка. Я работаю над проектом django
taluka=[('sirur',),('jath',),('mauli',)]
queryset = data.objects.values_list("taluka").distinct()
queryset = [item[0] for item in queryset]
print(queryset) // sirur,jath,mauli,etc
Taluka=forms.ModelChoiceField(queryset=data.objects.values_list("taluka").distinct(),)
print(Taluka) // ('sirur',),('jath',),('mauli',)
Я хочу, чтобы названия талуков печатались как sirur, jath, mauli
Вы можете использовать осмысление списка
taluka = [i[0] for i in taluka]
Решение 1: Вы можете использовать функцию join для преобразования кортежей внутри списка в строки, а затем преобразовать список строк в строку, разделенную запятыми, снова используя функцию join.
taluka=[('sirur',),('jath',),('mauli',)]
taluka = ",".join(["".join(t) for t in taluka])
print(taluka)
Решение 2: Дополняя ответ из LOCKhart, вы можете использовать понимание списка для преобразования данных в список строк и использовать функцию join для преобразования их в строку, разделенную запятыми.
taluka=[('sirur',),('jath',),('mauli',)]
taluka = ",".join([i[0] for i in taluka])
print(taluka)
Используйте .values_list("taluka", flat=True)
, чтобы получить плоский список одного поля без бесполезных 1 кортежей. Вы должны получить ['sirur', 'jath', 'mauli']
В противном случае, как следует из ответа LOCKhart, лучше всего использовать списковые вычисления.
queryset = list(data.objects.values_list("taluka", flat=True).distinct())
сделайте это, и все готово