Общее количество элементов списка в строке

#python #string #list #count

Вопрос:

Я обнаружил проблему синтаксиса, которую не смог решить или найти решение в Интернете, и надеялся, что у кого-нибудь здесь может быть ответ. Я пытаюсь подсчитать количество элементов списка в строке. Я пробовал обычные способы, такие как count, isinstance и set(возможно, все неправильно).

Я хотел бы подсчитать, сколько элементов списка у меня в str1:

 arr = [1, 'apple', 'banana', 2, 3]
str1 = ("this "   arr[0]   " then "   arr[3]   " next "   arr[2])
 

Вывод будет выглядеть примерно так: arr[] использовался «3» раза в str1

Комментарии:

1. Итак, ваш необходимый ответ 2 на этот arr вопрос ? Я понятия не имею, чем вы пытаетесь это продемонстрировать str1 .

2. Можете ли вы объяснить, что вы собираетесь с этим делать, потому что это будет иметь смысл.

3. Вы имеете в виду «Я хочу посчитать количество строк в списке»?!

4. "this " arr[0] не является действительным, это должно быть "this " str(arr[0])

5. Я обновил, как должен выглядеть результат. Я хочу иметь возможность подсчитать, сколько раз arr[] использовался в строке.

Ответ №1:

Используйте этот count() метод, чтобы подсчитать, сколько раз подстрока встречается в строке. И используйте sum() для суммирования подсчетов каждого элемента списка.

 total = sum(str1.count(str(i)) for i in arr)
print(f'Str1 contains a total of {total} arr[]')
 

Это учитывает все повторяющиеся совпадения отдельно. Если вам не нужны эти отдельные счетчики, используйте in их для проверки наличия элемента в строке.

 total = sum(str(i) in str1 for i in arr)
 

Комментарии:

1. Я тоже так думал, но получаю эту ошибку: ошибка типа: можно объединить только str (не «int») в str

2. Разве вы не видели мой предыдущий комментарий, в котором говорилось, что "this " arr[0] это недопустимо?

3. Эта ошибка исходит не из кода в моем ответе, а из-за вашего неправильного способа создания str1 .

4. str1 = ("this " str(arr[0]) " then " str(arr[2]) " next " str(arr[3])

5. Или используйте f-строку: str1 = f"this {arr[0]} then {arr[2]} next {arr[3]}"

Ответ №2:

Мы должны добавить тип переменной «str» в массив, чтобы их можно было подсчитать

 str1 = ("this "   str(arr[0])   " then "   str(arr[2])   " next "   str(arr[3]))