@mersad
درود
مشکل اینه‌ که لیست باید از اولین تا آخرین عضوش به ترتیب وارد بشه، یعنی
نمیشه یکی از اعضا رو مثلا بذاریم توی مکان ۳ و بعد بیایم مکان های قبلیش رو
پر کنیم.
مشکل حلقه شما هم args[j] هست که وقتی اولین عضو رو میخاد بگیره میره سراغ
ایندکس ۱ که ۰ هنوز عضوی نگرفته.
بهترین راه استفاده از دیکشنری هست.dict یا استفاده از ظری حلقه به صورت
دیگه‌ای ، مثلا استفاده از تابع len برای شمارش حلقه و... .
وقتی با لیست‌ها کار میکنید خیلی باید مواظب باشید این مشکل پیش نیاد.


2013/5/23 Reza Babaei <[email protected]>

> سلام
>
> من خودم تازه کار هستم ولی فک کنم مشکل شما با تغییر خط زیر درست میشه
>
>              total.append(args[j])
>
> به
>
>             total.append(j)
>
> یعنی نیازی به args و [] نیست
>
> 2013/5/7 MersadKhan Mostaghimi <[email protected]>
>
>> n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
>> # Add your function here
>>
>> def flatten(args):
>>
>>     for i in args:
>>         total=[]
>>         for j in i:
>>             total.append(args[j])
>>     return total
>> print flatten(n)
>> من کل کد را به این شکل تغییر دادم ولی با این ارور رو به رو میشم؟
>> (قصد صرفا یادگیری از پایه پایتونه!)
>> Traceback (most recent call last):
>>   File "python", line 11, in <module>
>>   File "python", line 9, in flatten
>> IndexError: list index out of range
>>
>> 2013/5/7, Ebrahim Radi <[email protected]>:
>> > ببین! چه کاریه اصلا! واه. پایتونه دیگه :دی
>> > راه یک: بسیار ساده:
>> > sum(n,[])
>> > راه دوم:
>> > import itertools
>> > list(itertools.chain.from_iterable(n))
>> > شاد باشی :)
>> >
>> >
>> > On Tue, 2013-05-07 at 22:11 +0430, nima rafiee wrote:
>> >> baraye halghe for dovomie : faramoush shode ;)
>> >>
>> >>
>> >>
>> >>
>> >> On Tue, May 7, 2013 at 10:00 PM, MersadKhan Mostaghimi
>> >> <[email protected]> wrote:
>> >>
>> >>         n = [[1, 2, 3], [4, 5, 6, 7, 8, 9],[10, 11]]
>> >>         # Add your function here
>> >>         total = []
>> >>         def flatten(*args):
>> >>
>> >>             for i in range(0,len(args)):
>> >>                 for j in range(0,len(args[i]))
>> >>                 total.append(args[i][j])
>> >>             return total
>> >>         print flatten(n)
>> >>
>> >>
>> >  <
>> >  <        من این کد را نوشتم ولی جواب نمیده ؟چرا؟
>> >  <
>> >>         --
>> >>         MerSadKhaN
>> >>
>> >>
>> >>         _______________________________________________
>> >>         Py mailing list
>> >>         [email protected]
>> >>         http://isfahanlug.org/mailman/listinfo/py_isfahanlug.org
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> _______________________________________________
>> >> Py mailing list
>> >> [email protected]
>> >> http://isfahanlug.org/mailman/listinfo/py_isfahanlug.org
>> >
>>
>>
>> --
>> MerSadKhaN
>>
>> _______________________________________________
>> Py mailing list
>> [email protected]
>> http://isfahanlug.org/mailman/listinfo/py_isfahanlug.org
>>
>
>
>
> --
> Best Regards
>
> Babaei
>
> _______________________________________________
> Py mailing list
> [email protected]
> http://isfahanlug.org/mailman/listinfo/py_isfahanlug.org
>
>


-- 
*Alireza Mazare'i  :http://alirezaimi.wordpress.com
*
_______________________________________________
Py mailing list
[email protected]
http://isfahanlug.org/mailman/listinfo/py_isfahanlug.org

Reply via email to