Python Forum
'dict_items' object has no attribute 'sort'
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
'dict_items' object has no attribute 'sort'
#1
monthdays = {'Jan':31, 'Feb':28, 'Mar':31,
            'Apr':30, 'May':31, 'Jun':30,
            'Jul':31, 'Aug':31, 'Sep':30,
            'Oct':31, 'Nov':30, 'Dec':31}

months = monthdays.items()
months.sort(lambda f, s: cmp(f[1], s[1]))
for month, days in months:
    print("There are ",days," days in a ", month)
Error

Error:
Exception has occurred: AttributeError 'dict_items' object has no attribute 'sort' File "/home/Desktop/dictionaries.py", line 7, in <module> months.sort(lambda f, s: cmp(f[1], s[1]))
Objective get a list of tuple pairs using the items method
Reply
#2
Use
months = list(monthdays.items())
Reply
#3
I don't know what you want to do, but months are always sorted

monthdays = {'Jan':31, 'Feb':28, 'Mar':31,
            'Apr':30, 'May':31, 'Jun':30,
            'Jul':31, 'Aug':31, 'Sep':30,
            'Oct':31, 'Nov':30, 'Dec':31}
    
for month in monthdays:
    print(f"There are {monthdays[month]} days in {month}")
Output:
There are 31 days in Jan There are 28 days in Feb There are 31 days in Mar There are 30 days in Apr There are 31 days in May There are 30 days in Jun There are 31 days in Jul There are 31 days in Aug There are 30 days in Sep There are 31 days in Oct There are 30 days in Nov There are 31 days in Dec
Calli likes this post
Reply
#4
(Jul-29-2022, 09:10 PM)Gribouillis Wrote: Use
months = list(monthdays.items())

It's saying
Error:
sort() takes no positional arguments
Reply
#5
(Jul-29-2022, 09:12 PM)Calli Wrote: It's saying Error:sort() takes no positional arguments
Use
months = sorted(monthdays.items(), key=lambda p: p[1])
Calli likes this post
Reply
#6
(Jul-29-2022, 09:15 PM)Gribouillis Wrote:
(Jul-29-2022, 09:12 PM)Calli Wrote: It's saying Error:sort() takes no positional arguments
Use
months = sorted(monthdays.items(), key=lambda p: p[1])

Thank you so much works like charm now
Reply
#7
(Jul-29-2022, 09:17 PM)Calli Wrote: Thank you so much works like charm now
A slightly more educated version:
from operator import itemgetter
months = sorted(monthdays.items(), key=itemgetter(1))
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  AttributeError: '_tkinter.tkapp' object has no attribute 'username' Konstantin23 4 1,754 Aug-04-2023, 12:41 PM
Last Post: Konstantin23
  Python: AttributeError: 'PageObject' object has no attribute 'extract_images' Melcu54 2 3,924 Jun-18-2023, 07:47 PM
Last Post: Melcu54
  Object attribute behavior different in 2 scripts db042190 1 753 Jun-14-2023, 12:37 PM
Last Post: deanhystad
  cx_oracle Error - AttributeError: 'function' object has no attribute 'cursor' birajdarmm 1 2,399 Apr-15-2023, 05:17 PM
Last Post: deanhystad
  Pandas AttributeError: 'DataFrame' object has no attribute 'concat' Sameer33 5 5,684 Feb-17-2023, 06:01 PM
Last Post: Sameer33
  WebDriver' object has no attribute 'find_element_by_css_selector rickadams 3 5,944 Sep-19-2022, 06:11 PM
Last Post: Larz60+
  AttributeError: 'numpy.ndarray' object has no attribute 'load' hobbyist 8 7,143 Jul-06-2022, 10:55 AM
Last Post: deanhystad
  AttributeError: 'numpy.int32' object has no attribute 'split' rf_kartal 6 4,429 Jun-24-2022, 08:37 AM
Last Post: Anushka00
  AttributeError: 'list' object has no attribute 'upper' Anldra12 4 4,913 Apr-27-2022, 09:27 AM
Last Post: Anldra12
Photo a.sort() == b.sort() all the time 3lnyn0 1 1,328 Apr-19-2022, 06:50 PM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020