#python #python-3.x #list
#python #python-3.x #Список
Вопрос:
У меня есть list1 = [3,4,5,6,7,8]
. Я хочу добавить к list2
такому, Add 10
чтобы even number
и multiply with 5
если это нечетное число в list1
with Python.
Я пробовал это
list1 = [3, 4, 5, 6, 7, 8]
list2 = []
for num in list1:
if (num%2) == 0:
num 10
list2.append(num)
else:
num*5
list2.append(num)
list2
Комментарии:
1.
num 10
иnum*5
создавать новые целочисленные объекты, которые немедленно отбрасываются. Они не изменяют целое число, на которое ссылаетсяnum
, действительно, целые числа неизменяемы2. Вы имеете в виду
num = num 10
иnum = num*5
?3. с какой ошибкой вы столкнулись? пожалуйста, опишите подробнее
4. что я должен использовать вместо этого? 🙁
Ответ №1:
понял…
import numpy as np
list1 = [3, 4, 5, 6, 7, 8]
list2 = []
for num in list1:
if (num%2) == 0:
x = num 10
list2.append(x)
else:
x = num*5
list2.append(x)
list2
Комментарии:
1. хорошо поработал над самостоятельной отладкой проблемы :). Проверьте также наши другие решения и посмотрите, какие из них помогут вам лучше понять проблему. Кроме того, я добавил альтернативное решение для вашей пользы. 🙂
2. спасибо, Акшай, я решил это на основе вашего ответа, вы напомнили мне, что я не сохранял никакого значения, lol.
3. рад помочь :). Отметьте ответ, который, по вашему мнению, сработал для вас!
4. Я сделал, lol, но для репутации ниже 15 stackoverflow не покажет ее :/
5. Не беспокойтесь, вы скоро доберетесь туда 🙂
Ответ №2:
Вы не сохраняете num 10
или num*5
нигде. Попробуйте это —
list1 = [3, 4, 5, 6, 7, 8]
list2 = []
for num in list1:
if (num%2) == 0:
list2.append(num 10) #<----
else:
list2.append(num*5) #<----
list2
[15, 14, 25, 16, 35, 18]
Вы также можете попробовать использовать понимание списка, которое представляет собой однострочник, который выполняет то же самое, что и выше —
list2 = [num 10 if (num%2)==0 else num*5 for num in list1]
[15, 14, 25, 16, 35, 18]