Adăugare număr întreg de la început de listă în Python

Am un întreg și o listă. Aș dori să fac o nouă listă a acestora, începând cu variabile și se încheie cu lista. Scris o + lista am obține erori. Compilatorul se ocupă de " a " ca un întreg, astfel eu nu pot folosi append, sau de a prelungi ori. Cum ați face acest lucru?

Soluția
>>>var=7
>>>array = [1,2,3,4,5,6]
>>>array.insert(0,var)
>>>array
[7, 1, 2, 3, 4, 5, 6]

Cum funcționează:

matrice.a introduce(index, valoare)

A introduce un element de la o anumită poziție. Primul argument este indicele elementului care înainte de a introduce, deci, matrice.insert(0, x) insertii la partea din față a listei, și matrice.a introduce(len(matrice), x) este echivalent cu matrice.append(x).Valorile Negative sunt tratate ca fiind relativă la sfârșitul șirului.

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

Rețineți că, dacă sunteți încercarea de a face această operațiune de multe ori, mai ales în bucle, o listă este greșit structura de date.

Listele nu sunt optimizate pentru modificări la față, și somelist.insert(0, ceva) este o O(n) operațiunea.

somelist.pop(0) " și " del somelist[0] sunt, de asemenea, O(n) operatii.

Corect structura de date pentru a utiliza este o deque de la "colectii" modul. deques expune o interfață care este similar cu cele de liste, dar sunt optimizate pentru modificări la ambele capete. Ei au o appendleft metoda pentru inserții în față.

Demo:

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
Comentarii (1)

Un alt mod de a face același lucru,

list[0:0] = [a]
Comentarii (3)

Puteți utiliza Despachetați lista:

a = 5

li = [1,2,3]

li = [a, *li]

=> [5, 1, 2, 3]

Comentarii (0)

Bazat pe unele (minim) de referință, folosind `datănu modulul se pare că are următoarele similare, dacă nu o performanță mai bună decât răspunsul acceptat

new_lst = [a, *lst]

Ca cu[o] + listaacest lucru va crea o nouă listă și nu evolualst`.

Dacă intenția dumneavoastră este de a evolua listă, apoi utilizați lst.insert(0, o).

Comentarii (0)

Noi liste pot fi făcute de către pur și simplu adăugarea de liste împreună.

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

Nici unul dintre acestea a lucrat pentru mine. M-am convertit la primul element să fie parte dintr-o serie (un singur element de serie), și a transformat-al doilea element, de asemenea, să fie o serie, și a folosit-adăugați funcția.

l = ((pd.Series()).append(pd.Series())).tolist()
Comentarii (0)
list_1.insert(0,ur_data)

asigurați-vă că ur_data este de tip string deci, dacă u au date= int(5) converti la ur_data = str(date)

Comentarii (0)