hvordan man tilføjer tal til en liste i python


Svar 1:

Først skal du tage input som en raw_input () i en liste nums og anvende spilled () funktion på det:

nums = raw_input ("Indtast numre:") .split () # liste med strenginput

Denne linje gemmer de forskellige pladsadskilte tal i listevariablen nums i strengformat.

(Du kan se listen ved at skrive:

udskriv numre

Hvis du har indtastet tal 1 2 3 som input, vil du se følgende output:

['1', '2', '3']

Men disse linjer behøver ikke at udgøre en del af din kode.)

Nu skal du oprette en tom liste. Denne liste gemmer senere værdierne for den forrige liste som ints

num = [] # dette skal have input i 'nums' som ints

Du skal konvertere hvert nummer på den første listenumre til et int, og gemme det i denne anden listenumre. Dette kan gøres ved at krydse den første liste via en for-loop, konvertere hvert element på denne liste ved hjælp af int () -funktionen og tilføje den til den anden liste ved hjælp af funktionen append ():

for jeg i nums: num.append (int (i))

Det er det. Færdigt arbejde. Du kan se resultaterne, der skriver udskriftsnummer.

Kort sagt har du brug for denne kode lille kode:

nums = raw_input ("Indtast numre:") .split () # liste med strenginputnum = [] # dette skal have input i 'nums' som intsfor jeg i nums: num.append (int (i))udskriv num

Det output, du ser, vil være som:

Håber dette hjælper!


Svar 2:

Du skal altid inkludere en korrekt formateret prøve af din kildekode med ethvert programmeringsspørgsmål, du sender til et offentligt forum, nyhedsgruppe eller mailingliste.

Lad os sige, at du startede med kode, der ser sådan ud:

initialværdi = [-3, -2, -1, 0]addenda = raw_input ('Indtast et mellemrumsafgrænset sæt tal:')

Hvis du vil bruge denne nye tilføjelse, forudsat at din bruger leverer korrekt formateret input, kan du gøre noget som:

initial_value.extend ([int (x) for x i addenda.split ()])

Metoden .extend () på Python lister iterer over en sekvens af nye emner og føjer hver til sig selv. I dette tilfælde leverer vi en sekvens, der oprettes dynamisk gennem en listeforståelse.

Listeforståelser er lidt af syntaktisk sukker i Python (og et par andre sprog), som tillader en at generere og filtrere en liste dynamisk.

Denne særlige forståelse tager listen / sekvensen, der returneres af strengen .split () -metoden, og kalder int () -funktionen på hver. Metoden .split () er som standard opdeling på hvidt mellemrum, og int () er typen / konstruktøren for heltal. At sende et enkelt strengargument til int () forsøger at analysere strengen som et heltal.

Hvis nogen af ​​disse underordnede elementer ikke kan parses som et heltal end int (), kaster en undtagelse, og hele udtrykket afbrydes (initialværdien ændres ikke i så fald --- men undtagelsen, hvis den ikke fanges, ville forårsage tolken til at afslutte med et stakspor.

Så denne one-liner er ikke særlig robust. Du kunne gøre noget som:

fra __future__ import udskrivningsfunktionhvis 'raw_input' ikke er i dir (__ builtins__): raw_input = inputprompt = 'Indtast et mellemrumsafgrænset sæt tal:'mens det er sandt: prøve: addenda = raw_input (prompt) initial_value.extend ([int (x) for x i addenda.split ()]) undtagen ValueError som e: print ('Bzzzt! Prøv igen') Blive ved pause

I dette tilfælde har jeg adskilt prompten kun for læsbarhed. (Jeg har også tilføjet en lille smule kedelplade for at lade dette kodeeksempel arbejde gennemsigtigt i Python 2.7 eller 3.x).


Svar 3:

Jeg gætter på, at du vil have en brugerinput af denne type:

2 3 4 7 9

for at blive taget som input og derefter gemme hver af dem på en liste.

Du kan acceptere linjen som input og derefter opdele den ved at bruge mellemrum som en afgrænser.

værdier = input (). split ()

Elementerne gemt i `værdier` ville være strenge. Du kan kortlægge dem som heltal efter input ved hjælp af:

værdier = liste (kort (int, input (). split ()))

'værdier' ​​ville nu indeholde heltal.

>>> værdier = input (). split ()2 3 4 7 9>>> værdier['2', '3', '4', '7', '9']>>> værdier = liste (kort (int, input (). split ()))2 3 4 7 9>>> værdier[2, 3, 4, 7, 9]

Svar 4:

Hvis du mener, hvordan du tilføjer hvert ord i en streng, skal split () være det, du leder efter:

>>> string = "hej verden">>> string.split ()['Hej Verden']

For at bruge dette til heltal, der er indtastet af brugeren, kan du bruge:

>>> user_input = input ("Indtast dine numre \ n")Indtast dine numre1 2 3>>> [int (x) for x i user_input.split ()][1, 2, 3]

Bemærk, at split () tager et mellemrum som standardafgrænser, men det kan være hvad som helst. For eksempel:

>>> user_input = input ("Indtast dine numre \ n")Indtast dine numre1,2,3>>> [int (x) for x i user_input.split (",")][1, 2, 3]

Svar 5:

Så brugeren bliver bedt om at indtaste elementer. Og han går ind i elementer adskilt af plads.

a = input ("Indtast venligst elementer")udskrive (a.split ())

Antag nu, at brugeren indtaster 1 2 3 4 5. Så værdien af ​​“a” ville være '1 2 3 4 5'. Men du vil tilføje værdierne til en liste. Så gør bare a.split () som nævnt i linje 2. Output ville være noget lignende

['1', '2', '3', '4']

PS: Eksempel nævnt ovenfor er baseret på brugssagen nævnt i kommentarer.


Svar 6:
l = [x for x i input (). split ()]print (l)

Indgang:

>>> 1 2 ff 4 gg 6

Output:

['1', '2', 'ff', '4', 'gg', '6']

Du kan også bruge kortfunktion til en bestemt datatype som (Python 2x):

x = kort (int, raw_input (). split ())

Indgang:

>>> 1 2 3 4 5

Output:

['1', '2', '3', '4', '5']

Svar 7:

Du kan bruge følgende syntaks:

l = liste (kort (int, input (). split ()))

print (l)

Indgang: 1 2 3 4

Output: [1, 2, 3, 4]

Jeg tror, ​​det er den enkleste måde at gøre det på.

Forklaring: Vi starter fra parenteser. Den tredje parentes tager heltal input adskilt af mellemrum. Den anden parentes kortlægger værdierne, og den tredje parentes konverterer dem i listen.