python字典和列表:如何转换?

python字典和列表:如何转换?,python,list,dictionary,Python,List,Dictionary,我有这类字典: dic = { 'blahAA, AA': [ u'cat' ], 'blahBB, BB': [ u'dog', u'bird' ], 'blahCC, CC': [ u'fish', u'horse', u'elephant' ] } blahXX是internet链接,id为XX。 如何将其转换为这样的列表: list = [['cat AA'], ['dog bird BB'], ['fish horse elephant

我有这类字典:

dic = {
'blahAA,
AA': [
    u'cat'
],
'blahBB,
BB': [
    u'dog',
    u'bird'
],
'blahCC,
CC': [
    u'fish',
    u'horse',
    u'elephant'
]
}

blahXX是internet链接,id为XX。 如何将其转换为这样的列表:

list = [['cat AA'], ['dog bird BB'], ['fish horse elephant CC']] 
可选名称: 理想情况下,我希望在Gtk界面(组合框)中显示每个元素(cat、dog bird等),而不显示XX,以便在选择中找到相应的internet地址:

例如:

cat --Gtk--> blahAA
dog bird --Gtk--> blahBB
fish horse elephant --Gtk--> blahCC
可能吗? 谢谢

我显示结果的实际代码是:

choice = self.liste.get_active_text()   # choice from the user
for url in self.links:
    if id in url: 
         adress = url
self.champ.set_text(adress)             # adress display
我不太明白您想要连接每个子列表中的所有值的目的是什么,但您可以使用
str的
join
方法:

>>> [' '.join(v + [k.rsplit(',')[-1]]) for k, v in dict.items()]
['dog bird BB', 'cat AA', 'fish horse elephant CC']
更新:如果要从这些URL中删除
.html
部分,可以执行以下操作

>>> [' '.join(v + [k[:-5].rsplit(',')[-1]]) for k, v in dict.items()]
k[:-5]
返回一个没有最后5个字符的新字符串(在本例中为
.html

我不太明白您想要连接每个子列表中的所有值的目的是什么,但您可以使用
str的
join
方法:

>>> [' '.join(v + [k.rsplit(',')[-1]]) for k, v in dict.items()]
['dog bird BB', 'cat AA', 'fish horse elephant CC']
更新:如果要从这些URL中删除
.html
部分,可以执行以下操作

>>> [' '.join(v + [k[:-5].rsplit(',')[-1]]) for k, v in dict.items()]
k[:-5]
返回一个没有最后5个字符的新字符串(在本例中为
.html

(map(str,seq)的优点是,如果列表中的某些元素是say
int
,它不会抛出
TypeError
异常-在Python中不能连接int和字符串,因为它是强类型语言,如果仍然是动态类型语言)


(map(str,seq)的优点是,如果列表中的某些元素是say
int
,它不会抛出
TypeError
异常-在Python中不能连接int和字符串,因为它是强类型语言,如果仍然是动态类型语言)

谢谢,第二个解决方案就是我想要的。我会试着告诉你。只有一件事:我的结果是['dog bird BB.html','cat AA.html'](你不知道),但是如何删除“.html”?谢谢,第二个解决方案就是我想要的。我会试着告诉你。只有一件事:我的结果是['dog bird BB.html','cat AA.html'](你不知道),但是如何删除“.html”?结果与frostnational相同,除了“u”。但显示在Gtk界面上没有区别。谢谢你,“…”是unicode字符串。如果需要,可以使用map(unicode,seq)。(或使用P3+,其中每个字符串都是unicode)结果与frostnational相同,但“u”除外。但显示在Gtk界面上没有区别。谢谢你,“…”是unicode字符串。如果需要,可以使用map(unicode,seq)。(或使用P3+,其中每个字符串都是unicode)
list = [[" ".join(v + [k.rsplit(',')[-1]])] for k,v in dic.items()]
print list