webentwicklung-frage-antwort-db.com.de

Ruft eine Liste von Zahlen ab, die vom Benutzer eingegeben werden

Ich habe versucht, raw_input() zu verwenden, um eine Liste von Zahlen zu erhalten, jedoch mit dem Code

numbers = raw_input()
print len(numbers)

die Eingabe [1,2,3] ergibt ein Ergebnis von 7, also denke ich, dass es die Eingabe interpretiert, als ob es eine Zeichenfolge wäre. Gibt es eine direkte Möglichkeit, eine Liste daraus zu machen? Vielleicht könnte ich re.findall, um die ganzen Zahlen zu extrahieren, aber wenn möglich, würde ich es vorziehen, eine pythonischere Lösung zu verwenden.

50
Underyx

Verwenden Sie dies in Python 3.x.

a = [int(x) for x in input().split()]

Beispiel

>>> a = [int(x) for x in input().split()]
3 4 5
>>> a
[3, 4, 5]
>>> 
76
greentec

Es ist viel einfacher, eine Liste von Zahlen zu analysieren, die durch Leerzeichen getrennt sind, als die Syntax Python:

Python 3:

s = input()
numbers = list(map(int, s.split()))

Python 2:

s = raw_input()
numbers = map(int, s.split())
56
Sven Marnach

eval(a_string) wertet einen String als Python Code aus. Dies ist offensichtlich nicht besonders sicher. Sie können eine sicherere (eingeschränktere) Auswertung erhalten, indem Sie die Funktion literal_eval von verwenden das ast Modul.

raw_input() heißt das in Python 2.x, weil es rohe, nicht "interpretierte" Eingaben erhält. input() interpretiert die Eingaben, ist also äquivalent zu eval(raw_input()).

In Python 3.x, input() erledigt das, was raw_input() getan hat, und Sie müssen den Inhalt manuell auswerten, wenn Sie dies wünschen (dh eval(input())).

6
Karl Knechtel

Sie können .split() verwenden

numbers = raw_input().split(",")
print len(numbers)

Dies gibt Ihnen immer noch Zeichenfolgen, aber es wird eine Liste von Zeichenfolgen sein.

Wenn Sie sie einem Typ zuordnen müssen, verwenden Sie das Listenverständnis:

numbers = [int(n, 10) for n in raw_input().split(",")]
print len(numbers)

Wenn Sie in der Lage sein möchten, in einen beliebigen Python einzugeben und ihn automatisch zuordnen zu lassen und Sie vertrauen Ihren Nutzern [~ # ~] implizit [~ # ~] , dann können Sie verwenden eval

5
Sean Vieira

Eine andere Möglichkeit könnte darin bestehen, die for-Schleife für diese zu verwenden. Angenommen, Sie möchten, dass der Benutzer 10 Zahlen in eine Liste mit dem Namen "Memo" eingibt.

memo=[] 
for i in range (10):
    x=int(input("enter no. \n")) 
    memo.insert(i,x)
    i+=1
print(memo) 
4
Ayan Khan
num = int(input('Size of elements : '))
arr = list()

for i in range(num) :
  ele  = int(input())
  arr.append(ele)

print(arr)
3
rashedcs
a=[]
b=int(input())
for i in range(b):
    c=int(input())
    a.append(c)

Die obigen Codeausschnitte sind eine einfache Methode, um Werte vom Benutzer abzurufen.

1
Nikhil Suresh

sie können eine Zeichenfolgendarstellung der Liste an json übergeben:

import json

str_list = raw_input("Enter in a list: ")
my_list = json.loads(str_list)

benutzer gibt in der Liste wie in Python ein: [2, 34, 5.6, 90]

1
Logan

Die Antwort ist trivial. Versuche dies.

x=input()

Angenommen, [1,3,5,'aA','8as'] Wird als Eingabe angegeben

print len(x)

dies ergibt eine Antwort von 5

print x[3]

das ergibt 'aA'

1
Achintha Avin

Ich denke, das wird den Job machen:

val = map(int, input().split()) print(list(val))

0
gii96

Holen Sie sich eine Liste der Nummer als Eingabe vom Benutzer.

Dies kann mithilfe der Liste in Python geschehen.

L=list(map(int,input(),split()))

Hier [~ # ~] l [~ # ~] zeigt Liste, Karte wird verwendet, um Eingaben mit der Position abzubilden. int gibt den Datentyp der Benutzereingabe an, der sich in einem ganzzahligen Datentyp befindet, und split () wird verwendet, um die Zahl basierend auf dem Leerzeichen zu teilen.

.

enter image description here

0
Mani Kandan

In Python 3:

input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]

Es wird gefragt, ob Sie eine Liste eingeben möchten. Geben Sie einfach eine Liste wie [2,4,5] ein.

(common_py3) PS E:\virtual_env_all\common_py3\Scripts> python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]
enter list:[2,4,5]
>>> input_list
[2, 4, 5]
>>> type(input_list)
<class 'list'>
>>>
0

probier diese ,

n=int(raw_input("Enter length of the list"))
l1=[]
for i in range(n):
    a=raw_input()
    if(a.isdigit()):
        l1.insert(i,float(a)) #statement1
    else:
        l1.insert(i,a)        #statement2

Wenn das Element der Liste nur eine Zahl ist, wird die Anweisung 1 ausgeführt, und wenn es eine Zeichenfolge ist, wird die Anweisung 2 ausgeführt. Am Ende haben Sie eine Liste 11, wie Sie gebraucht haben.

0
xarvier

Sie können diese Funktion verwenden (nur mit Int-Typ);)

def raw_inputList(yourComment):
     listSTR=raw_input(yourComment)     
     listSTR =listSTR[1:len(listSTR)-1]
     listT = listSTR.split(",")
     listEnd=[]
     for caseListT in listT:
          listEnd.append(int(caseListT))
     return listEnd

Diese Funktion gibt Ihre Liste zurück (mit Int-Typ)!

Beispiel:

yourList=raw_inputList("Enter Your List please :")

Wenn Sie eintreten

"[1,2,3]" 

dann

yourList=[1,2,3]          
0
WolfGangM