我已经使用了列表推导功能,应该将keys
和values
存储在itemDict
变量中,考虑到item['keys']
中存在的某些项目不会包含在itemDict
中。我已经使用了多个if条件来使之成为可能。
这是我尝试过的:
itemDict = {item['keys']:item['value'] for item in soup.select('input[keys]') if '$cmdPrint' not in item['name'] and 'btnView' not in item['name'] and 'btnMyDoc' not in item['key']}
如何重写这些条件以使其简洁?
答案 0 :(得分:1)
您可以使用check
函数并使用内置的all
。还要重新设置对可读性的理解。
def check(item):
return all(('$cmdPrint' not in item['name'],
'btnView' not in item['name'],
'btnMyDoc' not in item['key']))
itemDict = {item['keys']:item['value']
for item in soup.select('input[keys]')
if check(item)}
或者在理解中使用它,但这是一种长期的理解。
itemDict = {item['keys']:item['value']
for item in soup.select('input[keys]')
if all(('$cmdPrint' not in item['name'],
'btnView' not in item['name'],
'btnMyDoc' not in item['key']))}
或者只是使用常规的for循环:
itemDict = {}
for item in soup.select('input[keys]')
if check(item):
itemDict[item['keys']] = item['value']