【发布时间】:2015-03-04 06:43:05
【问题描述】:
我正在尝试使用包含整数的元组创建单个列表
输入示例:
test1((1, 2, 3), 2, 3)
test2((5, -5), 10, 3)
test3((10.2, -2.2, 0, 1.1, 0.5), 12.4, 3)
我尝试过以各种方式迭代元组,但得到“int() 不可迭代错误”。 我试图将变量分配给输入,但得到“'type' object is not subscriptable”错误。
我现在已经多次重写脚本并且没有保存以前的尝试。我在这里找到的解包方法不起作用,因为它们需要我遍历输入,而我无法做到(或弄清楚如何)。 b = [i for sub in args for i in sub]、list(chain.from_iterable(args) 等都没有用。
这是我现在拥有的
def checkio(*args):
ab, cd, ef = args
print (ab)
empty = []
empty.append(cd)
empty.append(ef)
for i in ab:
empty.append(i)
print (empty)
有点乱。我对 python 很陌生,所以我确信解决方案非常简单
【问题讨论】:
-
你所有的输入都是有规律的;一个元组和两个整数。那个模式总是存在吗?
-
@Ashwini 如果输入是常规的,就像 Martijn 刚刚问的那样,那么这不是重复的
-
@Martijn Pieters 让我们说是的。我在 Chekio 上执行任务,这是他们用来测试我的脚本的所有输入,但我不确定他们是否会向我扔一个曲线球。
-
@NickKremer:在这种情况下,只需接受 3 个参数,并使用
ab + (cd, ef)创建一个新元组。看起来第一个参数只不过是一个只有更多数字的元组。 -
@jamylak 我浏览了该网站,但没有找到任何可以解决我问题的东西。如果我忽略了一个帖子,链接将不胜感激