#python #list #string-length
#python #Список #длина строки
Вопрос:
Я пытаюсь найти len моего списка, но когда я это делаю, это дает неправильные результаты. Не уверен, почему и как это исправить. Любые предложения, что может быть не так с моим кодом? Из фотографии вы можете видеть из выделенной строки, что она показывает, что количество равно 2, но элементов больше 2
Элементы для первых 5 строк:
1. ['Unknown,email,transactional,Email - Transactional', 'Unknown,email,transactional,Email - Transactional', 'inspiratie,email,nieuwsbrief,E-mail - Nieuwsbrief', 'inspiratie,email,nieuwsbrief,E-mail - Nieuwsbrief']
- [‘(не задано), электронная почта, транзакционная, электронная почта — транзакционная’, ‘Неизвестно, электронная почта, транзакционная, электронная почта — транзакционная’, ‘(прямая), (нет), (не задано), Прямая’]
- [‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘Неизвестный, email, транзакционный, Email — транзакционный’]
- [‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘Неизвестный, email, транзакционный, Email — транзакционный’]
- [‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘Неизвестный, email, транзакционный, Email — транзакционный’, ‘(не задано), email, транзакционный, Email- Транзакционный ‘]
Код:
def calc(path):
return len(path)
df_journey['path_count']= df_journey.apply(lambda x: calc(x.path), axis=1)
Комментарии:
1. Пожалуйста, добавьте фрагмент кода соответствующие данные вместо изображения. Также — пожалуйста, покажите полный пример данных — На картинке показаны не все значения списка, так как мы можем увидеть, что длина неверна?
2. По опубликованному вами примеру данных изображению кажется, что количество элементов указано правильно. Для выбранной строки (третьей) — в списке всего 2 элемента
3. Но она должна учитывать каждый из них, например, Unknown = 1, email = 2 и т. Д. И Суммировать общее количество. Поэтому я не понимаю, почему он не учитывает каждый элемент списка, как я думал
4. @GiladGreen Теперь я понимаю, что вы имеете в виду, да, это правильно. Но я хочу подсчитать каждый отдельный элемент. Есть ли другой способ использовать функцию len для этого или мне нужен новый подход, такой как цикл for?
Ответ №1:
Я понял это, сначала я поместил столбец в строковый тип и удалил ‘[]’ с помощью replace, а затем скорректировал свою функцию
def calc(path):
return len(path.split(','))