목록을 검색하고 한 요소의 모든 항목을 다른 요소로 바꿔야합니다. 지금까지 코드를 시도했지만 아무데도 도움이되지 않습니다.이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
예를 들어, 내 목록에 다음 정수가 있다고 가정하십시오.
>>> a = [1,2,3,4,5,1,2,3,4,5,1]
숫자 1의 모든 항목을 값 10으로 바꿔야하므로 필요한 출력이
>>> a = [10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
따라서 내 목표는 숫자 1의 모든 인스턴스를 숫자 10으로 바꾸는 것입니다.
답변
>>> a= [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1]
>>> for n, i in enumerate(a):
... if i == 1:
... a[n] = 10
...
>>> a
[10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
답변
>>> a=[1,2,3,1,3,2,1,1]
>>> [4 if x==1 else x for x in a]
[4, 2, 3, 4, 3, 2, 4, 4]
답변
목록 이해가 잘 작동하고 열거를 통해 반복하면 메모리가 절약 될 수 있습니다 (b / c 작업이 본질적으로 수행되고 있음).
기능적 프로그래밍도 있습니다. 지도 사용법을 참조하십시오 .
>>> a = [1,2,3,2,3,4,3,5,6,6,5,4,5,4,3,4,3,2,1]
>>> map(lambda x: x if x != 4 else 'sss', a)
[1, 2, 3, 2, 3, 'sss', 3, 5, 6, 6, 5, 'sss', 5, 'sss', 3, 'sss', 3, 2, 1]
답변
대체 할 값이 여러 개인 경우 사전을 사용할 수도 있습니다.
a = [1, 2, 3, 4, 1, 5, 3, 2, 6, 1, 1]
dic = {1:10, 2:20, 3:'foo'}
print([dic.get(n, n) for n in a])
> [10, 20, 'foo', 4, 10, 5, 'foo', 20, 6, 10, 10]
답변
>>> a=[1,2,3,4,5,1,2,3,4,5,1]
>>> item_to_replace = 1
>>> replacement_value = 6
>>> indices_to_replace = [i for i,x in enumerate(a) if x==item_to_replace]
>>> indices_to_replace
[0, 5, 10]
>>> for i in indices_to_replace:
... a[i] = replacement_value
...
>>> a
[6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6]
>>>
답변
a = [1,2,3,4,5,1,2,3,4,5,1,12]
for i in range (len(a)):
if a[i]==2:
a[i]=123
for 및 or while 루프를 사용할 수 있습니다. 그러나 내장 Enumerate 함수를 알고 있다면 Enumerate를 사용하는 것이 좋습니다. 1
답변
모두 쉽게 교체하기 1
로 10
에
a = [1,2,3,4,5,1,2,3,4,5,1]
‘봐, 엄마, 아니 IF를 또는 FORS를!’하나 다음과 같은 한 줄 람다 + 맵의 조합을 사용할 수 있으며, :
# This substitutes all '1' with '10' in list 'a' and places result in list 'c':
c = list(map(lambda b: b.replace("1","10"), a))
