, सबसे अच्छा तरीका है पीछे से पुनरावृति और एक आवंटित करने के लिए है n
बार उस आइटम की सूची में पहले एक आइटम का टुकड़ा क्या था।
यह टुकड़ा काम की वजह से काम करता है:
>>> ls = [1, 2, 3]
>>> ls[0: 0+1]
[1]
>>> ls[0: 0+1] = [4, 5, 6]
>>> ls
>>> [4, 5, 6, 2, 3]
def repeat_elements(ls, times):
for i in range(len(ls) - 1, -1, -1):
ls[i: i+1] = [ls[i]] * times
डेमो उपयोग:
>>> a = [1, 2, 3]
>>> b = a
>>> b
[1, 2, 3]
>>> repeat_elements(b, 3)
>>> b
[1, 1, 1, 2, 2, 2, 3, 3, 3]
>>> a
[1, 1, 1, 2, 2, 2, 3, 3, 3]
(आप में जगह इसे संशोधित नहीं करना चाहते हैं, तो आप कॉपी कर सकते हैं सूची और प्रतिलिपि वापस करें, जो मूल को संशोधित नहीं करेगा। यह अन्य अनुक्रमों के लिए भी काम करेगा, जैसे tuple
एस, लेकिनकी तरह आलसी नहीं हैऔर itertools.repeat
विधि)
def repeat_elements(ls, times):
ls = list(ls) # Makes a copy
for i in range(len(ls) - 1, -1, -1):
ls[i: i+1] = [ls[i]] * times
return ls
कैसे की जाती है 'शामिल pandas'? आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं? आपने जो कोशिश की है उसके साथ क्या गलत है? – jonrsharpe