나는 정수와리스트를 가지고있다. 변수로 시작하여 목록으로 끝나는 새 목록을 만들고 싶습니다. 쓰기 a + list
오류가 발생했습니다. 컴파일러는 a
을 정수로 처리하므로 추가하거나 확장 할 수 없습니다. 어떻게 하시겠습니까?파이썬에서리스트의 처음에 정수를 붙인다.
답변
>>> a = 5
>>> li = [1, 2, 3]
>>> [a] + li # Don't use 'list' as variable name.
[5, 1, 2, 3]
>>>var=7
>>>array = [1,2,3,4,5,6]
>>>array.insert(0,var)
>>>array
[7, 1, 2, 3, 4, 5, 6]
그것이 작동하는 방법 :
array.insert(index, value)
array.insert(0, x)
은 목록의 앞에 삽입하고
array.insert(len(array), x)
은
array.append(x)
과 같습니다. 음수 값은 배열 끝에 상대적으로 처리됩니다.
가장 효율적인 방법. [x] + [y]보다 빠릅니다. 여기 솔루션을 참조하십시오 : http://stackoverflow.com/questions/8537916/whats-the-idiomatic-syntax-for-prepending-to-a-short-python-list –
질문에 명확하게 _new_ 목록을 만들어야한다고 나와 있습니다. 그래서 이것은 빠를 수 있습니다 -하지만 잘못되었습니다. ;-) – BlackJack
@BlackJack 질문은 목록의 처음에 정수를 추가하는 방법에 관한 것입니다. 그가 묘사하는 것은 무엇이든 따라야 할 올바른 것이 아닙니다. 그렇다면 왜 그가 잘못된 길을 택하도록 안내합니까? 그는 더 나은 일이있을 때 자신의 요구에 따라 할 수 있습니다. – Nullify
같은 일을하는 또 다른 방법, 당신은 특히 루프에서, 종종 그 작업을 수행하려는 경우, 목록이 잘못된 데이터 구조 것을
list[0:0] = [a]
첫 번째 0은 필요하지 않습니다. 콜론은 이미 시작하기 전에 - my_list [: 0] = [a]라고 말합니다. –
우아한 솔루션! – Shejo284
참고.
목록은 앞면이 수정되어 있지 않으므로 somelist.insert(0, something)
은 O(n) operation입니다.
somelist.pop(0)
및 del somelist[0]
도 O (n) 연산입니다.
사용할 올바른 데이터 구조는 collections
모듈의 deque
입니다. deques는 목록의 인터페이스와 유사하지만 양쪽 끝점에서 수정되도록 최적화 된 인터페이스를 노출합니다. 그들 앞에 appendleft
삽입 방법이 있습니다.
데모 :
In [1]: lst = [0]*1000
In [2]: timeit -n1000 lst.insert(0, 1)
1000 loops, best of 3: 794 ns per loop
In [3]: from collections import deque
In [4]: deq = deque([0]*1000)
In [5]: timeit -n1000 deq.appendleft(1)
1000 loops, best of 3: 73 ns per loop
- 1. 파이썬에서리스트의 길이는?
- 2. 리스트를 파이썬에서리스트의 사전으로 변환하십시오.
- 3. 파이썬에서리스트의 인덱스를 반환하는 방법
- 4. 파이썬에서리스트의 bool 값
- 5. 파이썬에서리스트의 원소 계산하기
- 6. 파이썬에서리스트의 모든 조합 곱하기
- 7. 파이썬에서리스트의 사전을 좁히기
- 8. 변수를 PHP로 굵은 글씨로 붙인다
- 9. 문자열을 파이썬에서리스트의 인덱스로 사용하는 방법
- 10. boolean 파이썬에서리스트의 부분 집합으로부터 색인하기
- 11. 파이썬에서리스트의 마지막 요소를 저장하려면 어떻게해야합니까?
- 12. 파이썬에서리스트의 동일한 항목 길이를 계산합니다.
- 13. PHP는 큰 따옴표 안에 작은 따옴표를 붙인다.
- 14. 유닉스 버퍼/파일없이 파일에 줄을 붙인다.
- 15. 파이썬에서리스트의 모든 요소를 빼고 나누는 것
- 16. 재귀를 사용하여 파이썬에서리스트의 모든 순열을 찾으십시오.
- 17. 파이썬에서리스트의 상위 n 개의 값 인덱스를 얻는다.
- 18. 정수를
- 19. P : 처음에 트리거되지 아약스 흐림 이벤트는 JSF에게 처음에 트리거되지 2
- 20. PhalconPHP - 홈 페이지 리다이렉션은 URI에 항상 추가/색인을 붙인다.
- 21. 자음을 찾는 정규 표현식과 'q'(Ruby에서)의 뒤에 'u'를 붙인다
- 22. CheckedTreeSelectionDialog 처음에 요소를 확인하십시오.
- 23. UITableViewCells가 처음에 나타나지 않습니다.
- 24. 처음에 UIDynamicItemBehavior에 스핀을 추가합니다.
- 25. 처음에 문자열 자름
- 26. 처음에 해당하는 SQL
- 27. addProximityAlert는 처음에 작동합니다.
- 28. 처음에 UIView가 아래로 이동합니다
- 29. YII - 처음에 문제
- 30. | 줄의 처음에 - bash
난 그냥 몇 가지 벤치마킹을했다. 'li.insert (0, a)'는'li = [a] + li'보다 약 5 배 빠릅니다. 이 일을 여러 번한다면이 점을 명심하십시오. –
@MarcelPfeiffer'li.insert (0, a)'는'li'을 변형시키고 있습니다. 'li = [a] + li'는 모든 값을 새 인스턴스로 만듭니다. 다른 것들이 목록 인스턴스에 대한 참조를 가지고 있다면 이것은 중요한 차이점입니다. – unholysampler
파이썬이 list.push_front (item) 함수를 추가하는 것이 좋다. 이것은 분명하고 오류가 발생하기 쉽지 않습니다. –