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