亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當字符串位于列表中的任何位置時返回布爾值

當字符串位于列表中的任何位置時返回布爾值

達令說 2021-12-09 18:26:43
當字符串列表中存在字符串的一部分時,我試圖能夠返回一個布爾值,例如這里有一個數據集:"issues": [    {      "id": "1",      "fields": {        "labels": [          "customer:asdf",          "hello"        ]      }    },    {      "id": "2",      "fields": {        "labels": [         "icanthearyou",         "hellotoyou"        ]      }    },     "id": "3",     "fields": {       "labels": [         "customer:num2",         "hellotoyou"        ]      }    }]我目前正在從這個集合中抓取數據,如下所示:def grab_data(self, data):    created_values = list((item['id'],                           # key                           True if "customer:" is in item['fields']['labels'] else false                            #fromcustomer boolean                          ) for item in data['issues'])但顯然以上一行True if "customer:" is in item['fields']['labels'] else false僅在標簽之一僅為“客戶:”時才有效所以要清楚我將如何以上面的格式獲取數據list((item['labels']) for item in data['issues']以查看其中一個labels在任何條目中具有此字符串“customer:”并返回true ...id 1 和 3 應該返回 True,id 2 應該返回 False。所以期望值應該是 [True, False, True]
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我稍微更改了您的原始列表以使其成為有效的 Python 列表變量,但解決此問題的一種方法是將join您的所有標簽合并為一個字符串,然后在該字符串中搜索“客戶:”。


def filter_issues(issues):

    return [ "customer:" in ' '.join(d["fields"]["labels"]) for d in issues]



issues = [{"id": "1", "fields": {"labels": ["customer:asdf", "hello"]}},

          {"id": "2", "fields": {"labels": ["icanthearyou", "hellotoyou"]}},

          {"id": "3", "fields": {"labels": ["customer:num2","hellotoyou"]}} ]


print(filter_issues(issues))

# Prints: [True, False, True]

我在連接中使用空格而不是空字符串的原因是因為否則類似的東西["abccust", "omer:foo"]會通過。


查看完整回答
反對 回復 2021-12-09
  • 1 回答
  • 0 關注
  • 235 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號