gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:45:17 26 4
gpt4 key购买 nike

函数应根据行名(在本例中为第 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)

最佳答案

其实我同意Andrew Hare's answer ,只需传递一个包含单个元素的列表。

但如果你真的必须接受一个非列表,那么在这种情况下将它变成一个列表怎么样?

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)

关于python - 将列表或单个整数作为参数处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/998938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com