簡體   English   中英

從python dict中刪除不必要的逗號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM