将字典值添加到数组中

时间:2013-10-04 23:46:49

标签: python dictionary

我有一个名为audio的词典,它以unicode显示有关MP3文件的信息。我使用str()将专辑和标题值转换为字符串。

alb = []
trck = []
audio = MP3(fullname)

albums = (str(audio['TALB'])) #TALB is the album key
tracks = (str(audio['TIT2'])) #Track key
trck = trck.append(tracks)
alb = alb.append(album)

当我在第六行之后打印结果时,它会丢弃所有专辑并跟踪5000多首歌曲的标题。之后,我想将曲目和专辑添加到单独的列表中,所以我使用append()但是我收到错误。还有其他选择吗?此外,我尝试使用.iteritem()直接从dict创建列表,但所有值都在unicode中,因此组织起来比较困难。另外,它为每个.mp3文件创建一个单独的数组。

我对Python比较陌生,所以对我的问题有任何帮助都会受到赞赏。

更多信息:

当我打印出来时,音频词典给了我大约5000多行的东西:

{'TDRC': TDRC(encoding=3, text=[u'1993']), 'TIT2': TIT2(encoding=3, text=[u'All I Wanna     Do']), 'TRCK': TRCK(encoding=3,
text=[u'9']), 'TPE1': TPE1(encoding=3, text=[u'Sheryl Crow']), 'TALB': TALB(encoding=3,     text=[u'Tuesday Night Music Club
']), 'TSSE': TSSE(encoding=3, text=[u'Xiph.Org libVorbis I 20070622']), 'TCON':     TCON(encoding=3, text=[u'Rock'])}

所以在使用str()之后,所有TIT2键,打印出来只给出了音频词典中每个TIT2键的值。

Tricky Kid
Vent
A Groovy Kind Of Love
Do You know The Way To San Jose?
Jamaica
I (Who Have Nothing)
River Deep - Mountain High
Spanish Harlem
Ten Lonely Guys
Will You Love Me Tomorow
Cry
In The Sand
Michel
My Friend
The Dark
Let It Ride
Urban Solitude
Be A Man

等等。接下来,我尝试将这些结果附加到空列表trck []。

trck.append(tracks)
print trck

当我打印出来时,我明白了:

['Tricky Kid']
['Vent']
['A Groovy Kind Of Love']
['Do You know The Way To San Jose?']
['Jamaica']
['I (Who Have Nothing)']
['River Deep - Mountain High']
['Spanish Harlem']
['Ten Lonely Guys']
['Will You Love Me Tomorow']
['Cry']
['In The Sand']
['Michel']
['My Friend']
['The Dark']
['Let It Ride']
['Urban Solitude']
['Be A Man']

当我打印音轨[0]时,它会给我所有5000首歌曲,而trck [1]超出范围。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

列表的append方法会修改列表并返回None。使用append时删除作业,即使用trck.append(tracks)代替trck = trck.append(tracks),否则变量将分配到None,您将丢失列表。