In Python, you want to change the element that meets the condition to a different value.
temp = ['apple', 'banana', 'coke']
for i in temp:
if i == 'coke':
i = 'grape'
print(temp)
I thought it would be "apple", "banana", "grave" but it didn't work.
temp = ['apple', 'banana', 'coke']
i = 0
for temp[i] in range(len(temp)):
if temp[i] == 'coke':
temp[i] = 'grape'
print(temp)
There's no problem if you do it like this way. Can't we change it to the first way?
python for list
Let's take a look at fori in temp
among these codes!
It is a line that copy elements of temp
one by one with i
.
In other words, it is concluded that the value cannot be changed in this way because the address (object) is not forwarded, but only the value is copied and forwarded.
If you want to use a code similar to that, try the following code. Of course, the code below is just an example, and there are many other good ways :)
temp = ['apple', 'banana', 'coke']
for i in temp:
if (i == "coke"):
temp[temp.index("coke")] = "grape"
#temp.The index ("coke") looks for "coke" in the temp.
#If there is a corresponding value, it returns the location of the value.
print(temp)
I don't know why I have to do the first method, but in conclusion, I can't change it to the first method. Because the value of i is a copy of the element in the temp, even if you change the copied i value to 'grave', the original temp value does not change. The second method is to change the temp[i] value itself to 'grave', so the desired value is output.
a = 1, b = a, b = 2, It doesn't make a = 2...
I think what you want is mapping.
temp = ['apple', 'banana', 'coke']
def no_soda(food) :
return 'grape' if food is 'coke' else food
final_realfinal_ver333 = map(no_soda, temp)
# 3 lines above and 1 line below have the same function
# # final_realfinal_ver333 = map(lambda food: 'grape' if food is 'coke' else food, temp)
print(final_realfinal_ver333) # ['apple', 'banana', 'grape']
573 rails db:create error: Could not find mysql2-0.5.4 in any of the sources
916 When building Fast API+Uvicorn environment with PyInstaller, console=False results in an error
618 Uncaught (inpromise) Error on Electron: An object could not be cloned
© 2024 OneMinuteCode. All rights reserved.