如果不是,则简化倍数或语句

问题描述 投票:0回答:1

我有这段代码可以搜索列表中的文本以及部分文本

  if issi in self.issi_list \
     or issi[:2] in self.issi_list \
     or issi[:3] in self.issi_list \
     or issi[:4] in self.issi_list \
     or issi[:5] in self.issi_list \
     or issi[:6] in self.issi_list:

我希望使用发电机代替它们

if issi in self.issi_list or [issi[:x] in self.issi_list for x in range(2, 6)]:

但是它似乎不起作用。我是否完全走错了轨道?

python-3.x if-statement generator
1个回答
1
投票

不完全是:

if issi in self.issi_list or any([issi[:x] in self.issi_list for x in range(2, 7)]):
  1. 您生成了单个测试结果的列表,但未将它们合并在一起
  2. range上升至但不包括第二个参数
© www.soinside.com 2019 - 2024. All rights reserved.