字典键内多个列表上的python循环(已编辑)

字典键内多个列表上的python循环(已编辑),python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我对python字典上的循环有点困惑。 脚本中的一个点返回如下数据: [u'/var/www/cacti/rra/r1f-ktrx06zhry_traffic_in_14644.rrd'] [u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd', u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_14966.rrd'] [] [u'/var/www/cacti/rra/

我对python字典上的循环有点困惑。 脚本中的一个点返回如下数据:

 [u'/var/www/cacti/rra/r1f-ktrx06zhry_traffic_in_14644.rrd']

 [u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd', 
  u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_14966.rrd'] 
  [] 
 [u'/var/www/cacti/rra/r1f-kyrx01zhry_traffic_in_14717.rrd']
但我希望这样输出(具有多个字符串数据值的单个dict)

有没有办法像这样将多个列表编入一本词典


附言-我对问题做了一点编辑!谢谢

假设
d
是你的字典。这样做

 for a in d:
     d[a]= ",".join([str(x) for x in d[a]]) 
也可以使用
map
功能

for a in d:
   d[a]= ",".join(map(str,d[a]))
您可以这样尝试:

dict1 = {u'GDR': [u'/var/www/cacti/rra/r1f-gdrx06zhry_traffic_in_14632.rrd'], u'TSA': [u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd', u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_14966.rrd']}

dict2 = dict()
for key, value in dict1.items():
    if isinstance(value, list) and len(value) > 1:
        value = ', '.join(value)
        dict2[key] = value

    else:
        dict2[key] = value[0]
print(dict2)
输出:

{'GDR': '/var/www/cacti/rra/r1f-gdrx06zhry_traffic_in_14632.rrd', 'TSA': '/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd, /var/www/cacti/rra/r1f-tsax04zhry_traffic_in_14966.rrd'}
说明:

使用循环的
迭代dict项

for key, value in dict1.items():
检查条件值的长度是否大于
1
,如果条件成功,则使用
str.join()
将列表元素与
连接。 并使用键和值更新新的
dict2


如果条件失败,则直接将键和
值[0]
添加到新的
dict2

字典中,维护键-值对,但所需的输出不包含最后一个元素的键。如果希望输出像这样,可以,但如果要返回值,它不是有效的python数据结构。您的输入映射到单个对象?列表类型太多了。但是所有的都断开了是的。。输入映射到每个对象@Swe Zin Phyoe:这是经过测试的,并按照您的要求工作。或者,我从函数返回的输出类似于[u'/var/www/cacti/rra/r1f-ktrx06zhry_traffic_in_14644.rrd'][u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd',u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_in_in_14966.rrd'][]。我想输出像{u'GDR':u'/var/www/cacti/rra/r1f-gdrx06zhry_traffic_in_14632.rrd',u'TSA':u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd',u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_in_14966.rrd'`我该怎么办?您的要求有变化吗?我不明白那句话是什么意思?请详细说明。我发布的代码是根据您在问题描述中的输出给出的。是的。。要求有点改变。对不起。如果你能就此提出建议,我将不胜感激。我当然会帮助你的。请在引号中分别更新您的输入和输出[u'/var/www/cacti/rra/r1f-ktrx06zhry_traffic_in_14644.rrd'][u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd',u'/var/www/cacti/rra/r1f/r1f-tsax04zhry_traffic_in_in_in_14966.rrd'][[u'/var/www/cacti/rra/r1; r1; r1; r1f-kyhry"traffic"17]{u'GDR':u'/var/www/cacti/rra/r1f-gdrx06zhry_traffic_in_14632.rrd',u'TSA':u'/var/www/cacti/rra/r1f-tsax02zhry_traffic_in_14954.rrd',u'/var/www/cacti/rra/r1f-tsax04zhry_traffic_in_in_14966.rrd'}`如果是这样,我该怎么办?Sir没有收到你的问题?
for key, value in dict1.items():