当前位置: 首页 > 面试题库 >

处理列表或单个整数作为参数

杜烨伟
2023-03-14
问题内容

函数应基于行名(在本例中为第2列)选择表中的行。它应该能够使用单个名称或名称列表作为参数并正确处理它们。

这就是我现在所拥有的,但是理想情况下不会有重复的代码,并且会聪明地使用诸如异常之类的东西来选择正确的方式来处理输入参数:

def select_rows(to_select):
    # For a list
    for row in range(0, table.numRows()):
        if _table.item(row, 1).text() in to_select:
            table.selectRow(row)
    # For a single integer
    for row in range(0, table.numRows()):
        if _table.item(row, 1).text() == to_select:
            table.selectRow(row)

问题答案:

实际上,我同意AndrewHare的回答,只需传递一个包含单个元素的列表即可。
我会这样做:

def select_rows(to_select):
    # For a list
    for row in range(0, table.numRows()):
        if _table.item(row, 1).text() in to_select:
            table.selectRow(row)

并期望该参数将始终是一个列表-即使它只是一个元素的列表。

记得:

要求宽恕比允许容易。

但是,如果您真的必须接受一个非列表,那么在这种情况下将其变成一个列表呢?

def select_rows(to_select):
    if type(to_select) is not list: to_select = [ to_select ]

    for row in range(0, table.numRows()):
        if _table.item(row, 1).text() in to_select:
            table.selectRow(row)

在单项列表上执行“ in”的性能损失可能不会很高:-)但这确实指出了如果“
to_select”列表可能很长,您可能要考虑做的另一件事:考虑强制转换将其设置为一组,以便查找更高效。

def select_rows(to_select):
    if type(to_select) is list: to_select = set( to_select )
    elif type(to_select) is not set: to_select = set( [to_select] )

    for row in range(0, table.numRows()):
        if _table.item(row, 1).text() in to_select:
            table.selectRow(row)


 类似资料:
  • 我正在尝试用join在多个表中创建查询,并将列表作为参数传递。我将null&empty检查放在查询字符串中。但是,我在QueryNode.GetDataType上获得了NullPointerException。下面是查询和异常。 用户、角色和shopNames是列表,而customer是字符串。我创建的查询通常只使用带有null检查的字符串,它起作用了。然而,对于列表,它错误地使用了下面的列表。任

  • 问题内容: 我试图将两个包含整数的列表作为参数传递给python代码。但是将参数作为字符串列表获取。 输入看起来像 我发现以下黑客可以转换列表。 有一个更好的方法吗? 问题答案: 命令行参数始终以字符串形式传递。您将需要自己将它们解析为所需的数据类型。 有像argparse和click这样的库,可以让您定义自己的参数类型转换,但将其视为相同, 因此我怀疑它是否有用。 编辑Jan 2019 这个答案

  • 问题内容: 如何使用Python列表(例如)作为函数的参数,例如: 问题答案: 您可以使用splat运算符执行此操作: 这使函数将每个列表项作为单独的参数接收。这里有一个描述:http : //docs.python.org/tutorial/controlflow.html#unpacking- argument-lists

  • 我想要在单Springmvc方法中处理内容类型application/x-www-form-urlencoded和application/json。 我在rest服务中要求接受输入作为表单参数或json。我可以通过编写两种方法来实现这一点。无论是形成params还是json,响应将始终是json。 有没有可能将这两种方法结合在一起并使其发挥作用?任何帮助都将不胜感激。 编辑 我已经实现了相同的,我

  • 问题内容: 我在SQL表中有一些列,例如text_en,text_es,text_de。现在,我只想根据语言从一列中检索值。因此,我创建了一个sql字符串, 并在vb代码中使用了 sql,但是sql返回了该列的名称,而不是该列的值。我如何获得价值? 问题答案: 你也可以

  • 问题内容: 我有一个jQuery ajax函数,想提交一个完整的表单作为发布数据。我们正在不断更新表单,因此不断更新应该在请求中发送的表单输入变得很乏味。 问题答案: 有一个函数可以做到这一点: http://api.jquery.com/serialize/