[英]remove unnecessary comma from python dict
我的字面是,
d= {'add1':'','add2':'address2','add3':'' }
我想將所有值作為逗號分隔單詞列表加入。
如果d是d= {'add1':'','add2':'address2','add3':'' }
然后輸出將是address2
如果d是d= {'add1':'address1','add2':'address2','add3':'' }
然后輸出將是address1,address2
如果d是d= {'add1':'address1','add2':'address2','add3':'address3' }
然后輸出將是address1,address2,address3
如果d是d= {'add1':'','add2':'','add3':'' }
然后輸出''
(只是空白字符串)
我試過了什么?
",".join([d.get('add1',''), d.get('add2',''), d.get('add3','')])
但我沒有像我預期的那樣得到輸出。
如果您不需要擔心訂單
','.join(value for value in d.itervalues() if value)
如果您的密鑰總是add1等,它們將很容易排序以確保訂單
','.join(d[key] for key in sorted(d.keys()) if d[key])
您可以簡單地加入非空值:
','.join(v for v in d.itervalues() if v)
你必須先濾掉空蜇:
",".join([x for x in d.values() if x])
獲取d.values()
然后獲取d.values()
后,可以使用列表str.join()
-
','.join([v for v in d.values() if v])
演示 -
>>> d= {'add1':'','add2':'address2','add3':'' }
>>> ','.join([v for v in d.values() if v])
'address2'
>>> d= {'add1':'address1','add2':'address2','add3':'' }
>>> ','.join([v for v in d.values() if v])
'address1,address2'
>>> d= {'add1':'','add2':'','add3':'' }
>>> ','.join([v for v in d.values() if v])
''
>>> d= {'add1':'address1','add2':'address2','add3':'address2' }
>>> ','.join([v for v in d.values() if v])
'address1,address2,address2'
使用dict.values()
方法和filter
函數:
','.join(filter(None, d.values()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.