python list - 转换为列表列表

标签 python list sorting indexing

我希望有人能为我指出正确的方向以及任何可以提供比答案更多信息的文档。我们开始吧,我有一个字符串列表:

arr = ["abcd","abcdef","def","abcdef"]

我想将该列表变成列表的列表,以便新元素按其出现顺序排列

arr = [("abcd",1),("abcdef",1),("def",1),("abcdef",2)]

这样做的原因是因为我想然后按字符串的长度对该列表进行排序,如果任何长度相同,我可以使用列表的第二个元素来知道哪个是我原始列表中的第一个.

when "abcdef" appears twice, it also contains 1 or 2 in its 2nd element

希望这是有道理的。谢谢!

最佳答案

尝试以下 for 循环:

>>> arr = ["abcd","abcdef","def","abcdef"]
>>> counts = {}
>>> new = []
>>> for item in arr:
...     if item not in counts:
...             new.append((item, 1))
...             counts[item] = 1
...     else:
...             counts[item]+=1
...             new.append((item, counts[item]))
... 
>>> new
[('abcd', 1), ('abcdef', 1), ('def', 1), ('abcdef', 2)]
>>> 

关于python list - 转换为列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779723/

相关文章:

java - 在扩展泛型类的类中初始化实例变量

javascript - 使用 javascript 创建下拉菜单

list - 对列表的多个子列表进行排序以创建新列表,Dart

python - 如何从保存的模型(SSD MobileNet)创建 tflite 文件

python - 尝试在 Windows 上的 Python 3 中使用套接字时出现 Winsock 错误 10014

python - 过滤多个变量的每个级别

c - qsort比较字母顺序的字符串

可以用来欺骗字符串排序器的 Unicode 字符?

python - 有什么方法可以在不使用 operator.itemgetter 的情况下对嵌套列表进行排序吗?

python - 如何找到最小的正整数以使数字单调?