jak přidat čísla do seznamu v pythonu


Odpověď 1:

Nejprve vezměte vstup jako raw_input () v seznamu nums a použijte na něj funkci spilled ():

nums = raw_input ("Zadejte čísla:") .split () # seznam s řetězcovými vstupy

Tento řádek ukládá různá čísla oddělená mezerami do čísel proměnných seznamu ve formátu řetězce.

(Seznam můžete zobrazit písemně:

vytisknout čísla

Pokud jste zadali čísla 1 2 3 jako vstupy, zobrazí se následující výstup:

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

Tyto řádky ale nemusí tvořit součást vašeho kódu.)

Nyní musíte vytvořit prázdný seznam. Tento seznam později uloží hodnoty předchozího seznamu jako ints

num = [] # toto by mělo mít vstupy v 'nums' jako ints

Musíte převést každé číslo prvního čísla seznamu na int a uložit jej do tohoto druhého čísla seznamu. To lze provést procházením prvního seznamu pomocí smyčky for, převedením každé položky tohoto seznamu pomocí funkce int () a jeho připojením k druhému seznamu pomocí funkce append ():

pro i v číslech: num.append (int (i))

A je to. Hotovo. Můžete si prohlédnout výsledky psaní tiskového čísla.

Stručně řečeno, potřebujete tento malý kód:

nums = raw_input ("Zadejte čísla:") .split () # seznam s řetězcovými vstupynum = [] # toto by mělo mít vstupy v 'nums' jako intspro i v číslech: num.append (int (i))číslo tisku

Výstup, který uvidíte, bude vypadat takto:

Snad to pomůže!


Odpověď 2:

K jakékoli otázce týkající se programování, kterou zveřejníte na veřejném fóru, v diskusní skupině nebo v seznamu adresátů, byste měli vždy zahrnout správně naformátovaný vzorek svého zdrojového kódu.

Řekněme, že jste začali s kódem, který vypadá asi takto:

initial_value = [-3, -2, -1, 0]addenda = raw_input ('Zadejte prosím mezerou oddělenou sadu čísel:')

Chcete-li použít tento nový dodatek, za předpokladu, že váš uživatel poskytuje správně naformátovaný vstup, můžete udělat něco jako:

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

Metoda .extend () v Pythonu uvádí iterace přes posloupnost nových položek a každou z nich připojuje k sobě. V tomto případě poskytujeme sekvenci, která je dynamicky vytvářena prostřednictvím porozumění seznamu.

Porozumění seznamu je trochu syntaktického cukru v Pythonu (a několika dalších jazycích), což umožňuje generovat a filtrovat seznam dynamicky.

Toto konkrétní porozumění přebírá seznam / sekvenci vrácenou metodou string .split () a na každém volá funkci int (). Metoda .split () je standardně rozdělena na mezery a int () je typ / konstruktor pro celá čísla. Předáním jediného argumentu řetězce do int () se pokusí analyzovat řetězec jako celé číslo.

Pokud některou z těchto podřetězců nelze analyzovat jako celé číslo, int () vyvolá výjimku a celý výraz se zruší (initial_value se v takovém případě nezmění --- ale výjimka, pokud by nebyla zachycena, by způsobila tlumočník ukončit trasováním zásobníku.

Takže tato jednorázová linka není příliš robustní. Můžete udělat něco jako:

z __future__ import print_functionpokud 'raw_input' není v adresáři (__ builtins__): raw_input = vstupprompt = 'Zadejte prosím sadu čísel oddělených mezerami:'zatímco je pravda: Snaž se: addenda = raw_input (výzva) initial_value.extend ([int (x) for x in addenda.split ()]) kromě ValueError jako e: tisk ('Bzzzt! Zkuste to znovu') pokračovat přestávka

V tomto případě jsem oddělil výzvu jen kvůli čitelnosti. (Také jsem přidal trochu standardizace, aby tento příklad kódu fungoval transparentně v Pythonu 2.7 nebo 3.x).


Odpověď 3:

Hádám, že chcete uživatelský vstup tohoto typu:

2 3 4 7 9

je třeba brát jako vstup a poté je uložit do seznamu.

Řádek můžete přijmout jako vstup a poté jej rozdělit pomocí mezery jako oddělovače.

hodnoty = vstup (). split ()

Prvky uložené v `hodnotách` by byly řetězce. Po zadání je můžete namapovat jako celá čísla pomocí:

values ​​= list (map (int, input (). split ()))

`hodnoty` by nyní obsahovaly celá čísla.

>>> hodnoty = vstup (). split ()2 3 4 7 9>>> hodnoty['2', '3', '4', '7', '9']>>> hodnoty = seznam (mapa (int, vstup (). split ()))2 3 4 7 9>>> hodnoty[2, 3, 4, 7, 9]

Odpověď 4:

Pokud máte na mysli, jak přidat každé slovo řetězce, pak split () by mělo být to, co hledáte:

>>> string = "ahoj svět">>> string.split ()['Ahoj světe']

Chcete-li to použít pro celá čísla zadaná uživatelem, můžete použít:

>>> user_input = input ("Zadejte svá čísla \ n")Zadejte svá čísla1 2 3>>> [int (x) for x in user_input.split ()][1, 2, 3]

Upozorňujeme, že split () bere mezeru jako výchozí oddělovač, ale může to být cokoli. Například:

>>> user_input = input ("Zadejte svá čísla \ n")Zadejte svá čísla1,2,3>>> [int (x) for x in user_input.split (",")][1, 2, 3]

Odpověď 5:

Uživatel je tedy vyzván k zadání prvků. A vstupuje do prvků oddělených prostorem.

a = vstup ("Zadejte prvky")print (a.split ())

Nyní předpokládejme, že uživatel zadá 1 2 3 4 5. Hodnota „a“ by tedy byla „1 2 3 4 5“. Ale chcete přidat hodnoty do seznamu. Takže stačí udělat a.split (), jak je uvedeno v řádku 2. Výstup by byl něco jako

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

PS: Výše ​​uvedený příklad je založen na případu použití uvedeném v komentářích.


Odpověď 6:
l = [x pro x ve vstupu (). split ()]tisk (l)

Vstup :

>>> 1 2 ff 4 gg 6

Výstup :

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

Můžete také použít mapovou funkci pro konkrétní datový typ, jako je (Python 2x):

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

Vstup :

>>> 1 2 3 4 5

Výstup :

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

Odpověď 7:

Můžete použít následující syntaxi:

l = seznam (mapa (int, vstup (). split ()))

tisk (l)

Vstup: 1 2 3 4

Výstup: [1, 2, 3, 4]

Myslím, že je to nejjednodušší způsob, jak to udělat.

Vysvětlení: Začínáme z vnitřních závorek. Třetí závorka přijímá celočíselný vstup oddělený mezerami. Druhá závorka mapuje hodnoty a třetí závorka je převádí v seznamu.