#python #list-comprehension
#питон #список-понимание
Вопрос:
Я немного сбит с толку, почему мое понимание списка работает, но не мой цикл.
Может кто — нибудь объяснить, чего мне здесь не хватает?
sales = ['$1.21', '$7.29', '$12.52', '$5.13', '$20.39', '$30.82', '$1.85', '$17.98'] # When for-loop loop_sales =[] for sale in sales: sale.strip("$") loop_sales.append(sale) print(loop_sales)
Выход: [‘$1.21’, ‘$7.29’, ‘$12.52’, ‘$5.13’, ‘$20.39’, ‘$30.82’, ‘$1.85’, ‘$17.98’]
# When list comprehension list_sales = [sale.strip("$") for sale in sales] print(list_sales)
Выход: [‘1.21’, ‘7.29’, ‘12.52’, ‘5.13’, ‘20.39’, ‘30.82’, ‘1.85’, ‘17.98’]
Ответ №1:
strip
метод просто возвращает новое значение (которое на самом деле является обработанным выводом), он вообще не изменяет sale
переменную здесь. Чтобы это сработало, попробуйте sale = sale.strip("$")
вместо sale.strip("$")
обычного кода цикла for или просто используйте loop_sales.append(sale.strip('$'))
, как сказал Талха Тайяб в своем ответе
Ответ №2:
Попробуйте это:
sales = ['$1.21', '$7.29', '$12.52', '$5.13', '$20.39', '$30.82', '$1.85', '$17.98'] # When for-loop loop_sales =[] for sale in sales: loop_sales.append(sale.strip("$")) print(loop_sales) #output ['1.21', '7.29', '12.52', '5.13', '20.39', '30.82', '1.85', '17.98']
Ответ №3:
Как метод, strip
не изменяет саму строку, он просто возвращает урезанную версию строки. Таким образом, вы можете подойти к этому двумя способами. Либо сохраните возвращенную строку в качестве переменной и добавьте эту переменную, либо добавьте sales.strip($)
вот так: версия 1 (сохранение в качестве переменной):
sales = ['$1.21', '$7.29', '$12.52', '$5.13', '$20.39', '$30.82', '$1.85', '$17.98'] # When for-loop loop_sales =[] for sale in sales: a= sale.strip("$") loop_sales.append(a) print(loop_sales)
или версия 2:
sales = ['$1.21', '$7.29', '$12.52', '$5.13', '$20.39', '$30.82', '$1.85', '$17.98'] # When for-loop loop_sales =[] for sale in sales: loop_sales.append(sale.strip("$")) print(loop_sales)
Все это зависит от того, будете ли вы использовать переменную позже в коде, но я думаю, что вторая версия лучше, если нет.
Ответ №4:
strip
не изменяет строку, она возвращает разделенную строку.
Ответ №5:
loop_sales =[] for sale in sales: loop_sales.append(sale.strip("$")) print(loop_sales)
Комментарии:
1. вставить код в блок кода будет лучше, или код может свернуться в один комок