💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Kawan azizpour
یه کار عملی که نشد بشه
محمدرسول اصغری حل شده توسط محمدرسول اصغری

سلام من خواستم تبدیل list به dictionary انجام بدم و هم زمان از تابع استفاده کنم با این کد:

                                                                               : def x(lon)

                                              :for i in range(list_of_number) 

                                                value = (list_of_number[i])

                                                                              i += 1

                                                         key = (f"number{i}")

                                            list_of_number1[key] = value

                                                     print(list_of_number1)

                                                                                 return

 

                                                                  {} = list_of_number1

                                                                   [ ] = list_of_number

                                                                               counter = 1
 

amount = int(input("how many number do you entend to enter?: "))
 

                                                          while counter <= amount

                     number = str(input(f"enter {amount} number:"))

                                           list_of_number.append(number)

                                                                        counter += 1

 

                                                                     x(list_of_number)

ولی در اخر همچین اروری میده

          TypeError: 'list' object cannot be interpreted as an integer

تاجایی که میدونم باید int رو به str تبدیل کنم ولی هرچی تلاش کردم نشد

ایا این عمل کلا قابل انجام هست یا مشکل منم ]:

درود

مشکلی که دارید به خاطر اینه که توی تابع range()، به جای لیست از یک عدد استفاده میکنید. باید طول لیست رو به عنوان آرگومان به range() بدید. همچنین، چند تا اصلاح دیگه لازم هست تا کد به درستی کار کنه. 

def x(list_of_number):
    list_of_number1 = {}
    for i in range(len(list_of_number)):
        value = list_of_number[i]
        key = f"number{i + 1}"
        list_of_number1[key] = value
    print(list_of_number1)
    return list_of_number1
list_of_number = []
counter = 1
amount = int(input("How many numbers do you intend to enter?: "))
while counter <= amount:
    number = input(f"Enter number {counter}: ")
    list_of_number.append(number)
    counter += 1
x(list_of_number)
  • تابع x تعغیر پیدا کرد تا از len(list_of_number) به عنوان آرگومان range() استفاده کنه.
  • یک دیکشنری جدید list_of_number1 داخل تابع x تعریف شد.
  • برای ساخت کلید از i + 1 استفاده شد تا شمارش از 1 شروع بشه.
  • لیست list_of_number رو با اعداد وارد شده پر کردیم.

امیدوارم این موراد براتون مفید باشه 

موفق باشید

بهترین پاسخ
محمدرسول اصغری ۳۱ خرداد ۱۴۰۳، ۱۲:۴۶