这个python if语句怎么了?

问题描述

我在python中创建一个函数,并使用了以下代码

def multi(_conv,_pretty = False):
  result = []
  newResult = ""
  for a in range(len(_conv)):
    for i in range(len(data)):
      if (str(_conv[a]) == data[i][0]):
        result.append(data[i][1]

  if(bool(_pretty) == True):
    for i in range(len(result)):
      newResult += str(result[i])
      if(i != len(result) - 1):
        newResult += ","
    return newResult

但是由于我无法弄清楚的原因,在行if(bool(_pretty) == True):上我在冒号上遇到语法错误。我已尝试确保间距正确,圆括号被打开没有任何问题,并且还尝试重写它以确保我没有丢失任何东西,但没有任何效果。如果有人可以帮助,那就太好了!

edit:对不起!我没有意识到仍然没有一对括号。那是我的坏事...

解决方法

您在)中缺少result.append(data[i][1],导致解释器有些困惑。


其他问题...

您可以使用for直接遍历列表中的项目。

if的条件下,无需括号。

无需强制转换_pretty或将其与True进行比较。 _prettya true value就足够了。

可以使用join完成结果格式设置。

  for c in _conv:
    for d in data:
      if str(c) == d[0]:
        result.append(d[1])

  if _pretty:
    return ",".join(result)