Python 3.x 为什么我的字典的输出是随机的、无序的,而不是我想要的顺序(Python 3.8.3)?

Python 3.x 为什么我的字典的输出是随机的、无序的,而不是我想要的顺序(Python 3.8.3)?,python-3.x,dictionary,Python 3.x,Dictionary,我正在尝试让我的字典按顺序输出有关音乐专辑的信息(艺术家的姓名、专辑的名称以及专辑中的歌曲数量)。正如您在我的代码中看到的,相册中的歌曲数量并不总是传递给函数,这是故意的 问题是,我的程序以随机、无序的顺序输出字典的值,而不是我上面写的顺序 def make_album(artist, album_name, songs = None): ''' Makes a dictionary describing a music album''' if songs: al

我正在尝试让我的字典按顺序输出有关音乐专辑的信息(艺术家的姓名、专辑的名称以及专辑中的歌曲数量)。正如您在我的代码中看到的,相册中的歌曲数量并不总是传递给函数,这是故意的

问题是,我的程序以随机、无序的顺序输出字典的值,而不是我上面写的顺序

def make_album(artist, album_name, songs = None):
    ''' Makes a dictionary describing a music album'''
    if songs:
        album = {artist, album_name, songs}
    else:
        album = {artist, album_name}
    return album
album1 = make_album("Guns n' Roses", "The Spaghetti Incident")
print(album1)
album2 = make_album("Pink Floyd", "The Wall", "10")
print(f"\n{album2}")
album3 = make_album("Smash Brothers", "All Stars")
print(f"\n{album3}")
这是我在执行程序时得到的一个输出示例:

{'The Spaghetti Incident', "Guns n' Roses"}

{'10', 'The Wall', 'Pink Floyd'}

{'Smash Brothers', 'All Stars'}
谢谢你

顺便说一句,这是我第一次在互联网上问编程问题!全新的编码器

顺便说一句,我正在运行Python 3.8.3。

您正在使用s。在Python中,集合本质上是无序的,打印它们可以导致任何顺序

您希望使用有序的s。所以不是

album = {artist, album_name, songs}
你会写:

album = (artist, album_name, songs)
在这种情况下,更好的方法是使用a或类。

您使用的是s。在Python中,集合本质上是无序的,打印它们可以导致任何顺序

您希望使用有序的s。所以不是

album = {artist, album_name, songs}
你会写:

album = (artist, album_name, songs)

在这种情况下,更好的方法是使用a或类来代替。

1。请阅读。2.将代码放入问题正文中,不要链接到它。3.您使用的是集合,而不是字典。集合没有排序,在Python 3.8中不是“偶数”,您没有使用字典…1。请阅读。2.将代码放入问题正文中,不要链接到它。3.您使用的是集合,而不是字典。在Python3.8中,集合是不有序的,不是“偶数”的。您没有使用字典。。。