簡體   English   中英

從python中的單行取n個整數輸入

[英]Taking n number of integer inputs from a single line in python

因此,基本上我從用戶那里獲取一個n值,其中n = int(input("number of boats")) ,然后從一行獲取n個整數輸入(假設我的輸入是2 6 3 6 4 7 4 ,它們寫2 ,我只取前兩個數字2 6 ),並將其附加到列表中(我之前定義為mylist = [] )。 我想將它們作為整數而不是列表中的字符串。 我怎樣才能做到這一點?


編輯:

好的,也許我的措辭不是最好的,所以我將嘗試以不同的方式解釋。 我從.txt文件中輸入內容,該文件具有:

3 23 56 36 48 46 97

開始時的3決定了有多少條船,例如23 56是第一條船的值。 我想輸入確定多少條船的輸入,然后將所有值作為輸入並將它們全部放入一個列表中[23, 56, 36, 48, 46, 97] 請注意,我必須使用輸入而不是文件讀取,因為將測試不同的值。 我需要將這些值作為整數,以便不能將每一行都當作一個字符串。

您可以這樣嘗試。

注意:我認為,不需要為n取顯式值。

>>> import re
>>> 
>>> s = '12 34      56     34   45'
>>> l = re.split(r'\s+', s)
>>> l
['12', '34', '56', '34', '45']
>>> 
>>> [int(n) for n in l]
[12, 34, 56, 34, 45]
>>> 
>>> # Using the above concept, it can be easily done without the need of explicit n (that you are taking)
... 
>>> mylist = [int(n) for n in re.split('\s+', input("Enter integers (1 by 1): ").strip())]
Enter integers (1 by 1): 12 34   56 67  99 34 4 1 0 4 1729
>>> 
>>> mylist
[12, 34, 56, 67, 99, 34, 4, 1, 0, 4, 1729]
>>> 
>>> sum(mylist)
2040
>>> 

您應該嘗試以下代碼:

n = int(input("number of boats:"))
mylist = []
for _ in range(n):            # Taking n lines as input and add into mylist
    mylist.extend(list(map(int, input().rstrip().split())))
print("mylist is:", mylist)

輸出為:

number of boats:3
23 56
36 48
46 97
mylist is: [23, 56, 36, 48, 46, 97]

您可以嘗試的一種方法:

numlist = []
n = stdin.readline()
for _ in range(int(n)):
    numlist.extend(stdin.readline().split())
stdout.write(str(numlist)) 

此方法的輸出:

2 
1 2
3 4 5

該方法花費的時間:

import timeit
setup = "from sys import stdin,stdout"
statement = '''
numlist = []
n = stdin.readline()
for _ in range(int(n)):
    numlist.extend(stdin.readline().split())
stdout.write(str(numlist))   
'''
print (timeit.timeit(setup = setup, 
                    stmt = statement, 
                    number = 1) )

輸出與執行所需的時間:

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

如果想法是接受n個輸入,則可以執行以下操作:

mylist = list()
n = int(input("number of boats"))
for i in range(n):
    mylist.append(int(input("integer number")))

如果您的想法是使用帶有值的字符串,並讓用戶決定該字符串的編號如何讓您執行此操作:

boats = '2 6 3 6 4 7 4'
n = int(input("number of boats"))
boats = list(map(int, boats.split(' ')))
mylist = boats[:n]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM