【发布时间】:2015-12-07 16:59:55
【问题描述】:
在列表中找到相同的元素,然后将这些元素更改为元组(f.e. 2 to (2, 1)),为重复的元素添加计数。
所以我有这个清单:
a = [1, 2, 4, 3, 2, 1]
我想得到:
a = [(1, 1), (2, 1), 4, 3, (2, 2), (1, 2)]
其中第二个元素是一个计数器(从 1 开始),因此第二个 1 数字被替换为 (1, 2)。第三个会变成(1, 3)。
【问题讨论】:
-
欢迎来到 Stack Overflow!看起来您希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只会在发布者已经尝试自己解决问题时提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、堆栈跟踪、编译器错误 - 不管是什么适用的)。您提供的详细信息越多,您可能收到的答案就越多。
-
此外,我不太清楚输入列表如何导致给定的输出。为什么是
(2, 1)和(1, 2),例如? -
元组中的第二个值是否可能是一个计数器,从 1 开始?为什么不同时添加这样的计数
4和3,即使它们只会上升到1? -
谢谢!想法我想将列表中的相同元素替换为元组,因为在我想将它与其他列表压缩到 dict 之后,并且你知道 Python 不支持 dict 中的相同键,所以我试图让它像这样。 1 -> (1,1) 如果它的第一个 1
-
是的,我了解到
4不再重复。但是现在您正在创建不一致的键。您稍后会为您的代码提供更多工作,以尝试确定键是元组还是整数。你会更容易做到一致。
标签: python list python-3.x