gpt4 book ai didi

python - 将元组与变量连接起来

转载 作者:太空狗 更新时间:2023-10-29 21:49:12 25 4
gpt4 key购买 nike

我有一个元组 x = (2,),我想向其附加一个变量 y。我事先并不知道 y 到底是什么类型的变量。

y 可以是:

  • 一个元组,在这种情况下我很乐意使用 x+y,或者
  • 单个对象(通常是字符串或整数),在这种情况下我应该使用 x+(y,)

采用一种策略会在一半的时间里给我一个 TypeError,而采用另一种策略会在我想要 (2, 3, 4)

处理此问题的最佳方法是什么?

最佳答案

使用第二种策略,只需检查您添加的是包含多个项目还是单个项目的可迭代对象。

您可以通过检查是否存在 __iter__ 属性来查看对象是否为可迭代对象(tuplelist 等) .例如:

# Checks whether the object is iterable, like a tuple or list, but not a string.
if hasattr(y, "__iter__"):
x += tuple(y)
# Otherwise, it must be a "single object" as you describe it.
else:
x += (y,)

试试这个。此代码段的行为与您在问题中描述的完全一样。

请注意,在 Python 3 中,字符串具有 __iter__ 方法。在 Python 2.7 中:

>>> hasattr("abc", "__iter__")
False

在 Python 3+ 中:

>>> hasattr("abc","__iter__")
True

如果您使用的是 Python 3,但您没有在问题中提及,请将 hasattr(y, "__iter__") 替换为 hasattr(y, "__iter__") 而不是isinstance(y, str)。这仍然会考虑元组或列表。

关于python - 将元组与变量连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36248149/

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