Python 当字符串位于列表的任意位置时返回布尔值
我试图在字符串列表中出现部分字符串时返回布尔值,例如,这里有一个数据集:Python 当字符串位于列表的任意位置时返回布尔值,python,Python,我试图在字符串列表中出现部分字符串时返回布尔值,例如,这里有一个数据集: "issues": [ { "id": "1", "fields": { "labels": [ "customer:asdf", "hello" ] } }, { "id": "2", "fields": { "labels": [
"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'])
但是很明显,如果“customer:”在item['fields']['labels']中,则上述行为True,否则为false
仅当其中一个标签仅为“customer:”
因此,为了弄清楚我将如何获取这种格式的数据,我在上面的列表((项['labels'))中为数据['issues']
中的项添加了标签,以查看其中一个标签在任何条目中是否包含此字符串“customer:”,并返回true
id 1和3应返回True,id 2应返回False
所以期望值应该是[True,False,True]我稍微更改了原始列表,使其成为有效的Python列表变量,但解决此问题的一种方法是将所有标签合并到一个字符串中,然后在该字符串中搜索“customer:”
我在连接中使用空格而不是空字符串的原因是,否则像[“abccust”,“omer:foo”]
这样的东西会通过。显示期望值注意,如果b中的a为False,则形式为True的代码实际上要在b中写入a
,这已经是真还是假了。
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]