Programing

파이썬에서 목록의 시작 부분에 정수 추가

lottogame 2020. 2. 21. 22:01
반응형

파이썬에서 목록의 시작 부분에 정수 추가


정수와 목록이 있습니다. 변수로 시작하고 목록으로 끝나는 새 목록을 만들고 싶습니다. 쓰기 a + list오류가 발생합니다. 컴파일러는 a정수로 처리 하므로 append를 사용하거나 확장 할 수 없습니다. 어떻게 하시겠습니까?


>>>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)음수 값은 배열의 끝을 기준으로 처리됩니다.


>>> a = 5
>>> li = [1, 2, 3]
>>> [a] + li  # Don't use 'list' as variable name.
[5, 1, 2, 3]

루프, 특히 루프에서 해당 작업을 자주 수행하려는 경우 목록이 잘못된 데이터 구조 입니다.

리스트는 수정을 위해 최적화되지 않았 somelist.insert(0, something)으며 O (n) 연산 입니다.

somelist.pop(0)del somelist[0]같은 O (n)를 연산한다.

사용할 올바른 데이터 구조 dequecollections모듈 에서 가져온 것 입니다. 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

같은 일을하는 또 다른 방법은

list[0:0] = [a]

포장 풀기 목록을 사용할 수 있습니다.

a = 5

li = [1,2,3]

li = [a, * li]

=> [5, 1, 2, 3]


timeit모듈을 사용하는 일부 (최소) 벤치 마크를 기반으로 다음과 같은 성능이 허용 된 답변과 비슷하지는 않지만 비슷한 것으로 보입니다

new_lst = [a, *lst]

이것과 마찬가지로 [a] + list새로운리스트를 생성하고 변경하지는 않습니다 lst.

목록을 변경하려는 의도가 있다면를 사용하십시오 lst.insert(0, a).


단순히 목록을 추가하여 새로운 목록을 만들 수 있습니다.

list1 = ['value1','value2','value3']
list2 = ['value0']
newlist=list2+list1
print(newlist)

이 중 어느 것도 나를 위해 일하지 않았습니다. 첫 번째 요소를 시리즈 (단일 요소 시리즈)의 일부로 변환하고 두 번째 요소도 시리즈로 변환하고 추가 기능을 사용했습니다.

l = ((pd.Series(<first element>)).append(pd.Series(<list of other elements>))).tolist()

list_1.insert(0,ur_data)

확인 ur_data 문자열 유형이다 u는 한 그렇다면 만들기 data= int(5)로 변환ur_data = str(data)

참고 URL : https://stackoverflow.com/questions/17911091/append-integer-to-beginning-of-list-in-python



반응형