2016-04-16 13 views
5

मैं एक सूची में इनपुट जोड़ने के लिए एक फ़ंक्शन लिख रहा हूं। मुझे यह चाहिए कि जब आप 280 2 इनपुट करते हैं तो ['280 2'] की बजाय सूची ['280', '280'] बन जाती है।एक इनपुट से कई इनपुट

उत्तर

8
>>> number, factor = input().split() 
280 2 
>>> [number]*int(factor) 
['280', '280'] 

याद रखें कि * ऑपरेटर के साथ ही साथ एक सूची श्रृंखलाबद्ध unexpected results हो सकता है कि आपकी सूची परिवर्तनशील तत्व शामिल हैं - लेकिन आपके मामले में यह ठीक है।

संपादित करें:

समाधान है कि एक कारक के बिना आदानों संभाल कर सकते हैं:

>>> def multiply_input(): 
...  *head, tail = input().split() 
...  return head*int(tail) if head else [tail] 
... 
>>> multiply_input() 
280 3 
['280', '280', '280'] 
>>> multiply_input() 
280 
['280'] 

त्रुटि की जरूरत के रूप में (खाली आदानों के लिए उदाहरण के लिए) की जाँच के आधार पर जोड़े आपके उपयोग के मामले पर।

+0

मुझे यह पसंद है, लेकिन यह यह एक त्रुटि में चलाता है जब आप केवल 280, मैं बदसूरत कोड की तरह मैं आमतौर पर सुधारने के लिए क्या इस्तेमाल कर सकते हैं डालते हैं, लेकिन आप किसी भी चिकना समाधान के बारे में पता है प्रकट होता है? –

+0

यह जादू है, धन्यवाद। –

2
from itertools import repeat 

mes=input("please write your number and repetitions:").split() 
listt= [] 
listt.extend(repeat(int(mes[0]), int(mes[1])) 

#repeat(object [,times]) -> create an iterator which returns the object 
#for the specified number of times. If not specified, returns the object 
#endlessly. 
+0

कृपया उन लोगों के लिए आसान बनाने के लिए अपने कोड के पीछे तर्क को समझाएं जो इसे सीखने की कोशिश कर रहे हैं। – Reti43

+0

आपके पास एक बिंदु है! मेरा बुरा – Taylan

+1

धन्यवाद! मैं पागल हो रहा था। मेरे इनपुट में संशोधन करें जब मैं (मुझे अनजान) वास्तव में करना चाहता था। उन्हें आगे बढ़ाएं। –

2

आप युक्त 1. फिर आप (पहले 2 आइटम छोड़ने के लिए मामले में repetitions की संख्या प्रदान की गई थी सूची काट कर सकते हैं एक सूची के साथ पार्स इनपुट बढ़ा कर repetitions की अज्ञात संख्या के मामले में संभाल कर सकते हैं, [1] को छोड़ दिया जाएगा कि)

number, rep = (input().split() + [1])[:2] 
[number] * int(rep) 
+0

पाठ का थोड़ा सा पाठक को आपके समाधान को तेज़ी से समझने में मदद करेगा। –

+0

@LaurIvan वास्तव में –

0

इस कोड को कोई दूसरा नंबर डाल के साथ प्रदान की जा रही के खिलाफ अपवाद हैंडलिंग प्रदान करता है।

def addtolist(): 
    number = input("Enter number: ") 
    try: 
     factor = input("Enter factor: ") 
    except SyntaxError: 
     factor = 1 
    for i in range(factor): 
     listname.append(number) 
संबंधित मुद्दे