如何创建列表元素的元组

时间:2015-10-16 17:10:09

标签: python list tuples list-comprehension

如果你输入(1234)并且想要输出,你如何制作元组 ([1],[2,3,4],[])

输入正在输出122.3 ([1],[2,2],[3])

templistint = [1,2,3,4]
temptuple = [(e,) for e in templistint] #This is as close as I can get.
print (temptuple)
[(1,),(2,),(3,),(4,)]

如果这是模糊的让我知道!我发布了更多自己的作品,但不是很连贯。我一直在试图弄清楚如何将它变成那种格式。例如输入(4321)输出为([4],[3],[2],[1])。

抱歉让我更清楚。

输入(4321) 输出([4],[3,2,1],[]) 4是前导数字,3,2,1是直到小数点的数字,[]为空,因为小数点后面没有数字。

这样想: 输入(4321.0) 输出([4],[3,2,1],[])

或者: 输入(4321.1) 输出([4],[3,2,1],[1])

我希望有助于再次澄清对不起。

1 个答案:

答案 0 :(得分:0)

我们不是编码服务,但我们可以提供基础知识。

首先,您可以通过多种方式对此进行攻击。我首先假设输入是一个字符串,否则你无法获得真正准确的小数部分。我们称之为 num

我们需要先找到小数点:小数部分是它自己的单独列表。

dec_pt = num.find('.')
frac_part = num[dec_pt+1:]

现在,将整数部分转换为真正的整数:

int_part = int(num[:dec_pt])

最后,你需要做一点魔力来给你3位数的数字块。 Python有一个内置函数divmod。如果它对你不熟悉,请查阅。从Python命令行中使用它,以便了解它的工作原理。

int_part, chunk = divmod(int_part, 1000)

你还有很多工作要做,但我希望这会让你感动。您需要将最后一部分放入循环中以获得一系列3位数的块。您需要将每个块处理成三个一位数整数的列表(使用divmod为10?)。你需要附上所有这些部分才能得到你想要的答案。

玩得开心。