我想为列表中的每个元素提取索引[重复]

     2023-02-23     38

关键词:

【中文标题】我想为列表中的每个元素提取索引[重复]【英文标题】:I would like to extract indexes for each element in a list [duplicate] 【发布时间】:2020-11-20 08:41:42 【问题描述】:

我有两个列表:

list1 = ["A", "B", "C", "D", "E"]

list2 = ["A", "A", "C", "B", "E", "A", "C", "B", "E", "D"]

我想为每个元素创建一个索引列表列表:

[[0,1,5], [3, 7], [2, 6], [9], [4,8]]

我试过这个:

for i in list1:
    list3 = [j for j,x in enumerate(list2) if x == i]
    print(list3)

但我得到了这些不同的结果:

[0, 1, 5]
[3, 7]
[2, 6]
[9]
[4, 8]

【问题讨论】:

【参考方案1】:

最简单的方法是再创建一个列表并附加到该列表

In [28]: list1 = ["A", "B", "C", "D", "E"]
    ...: list2 = ["A", "A", "C", "B", "E", "A", "C", "B", "E", "D"]

In [29]: data = []

In [30]: for i in list1:
    ...:      list3 = [j for j,x in enumerate(list2) if x == i]
    ...:      data.append(list3)
    ...:

In [31]: data
Out[31]: [[0, 1, 5], [3, 7], [2, 6], [9], [4, 8]]

In [32]: data = []

In [33]: for i in list1:
    ...:      data.append([j for j,x in enumerate(list2) if x == i])

In [35]: data
Out[35]: [[0, 1, 5], [3, 7], [2, 6], [9], [4, 8]]

【讨论】:

【参考方案2】:

你可以把它写成列表推导式。

>>> list3 = [[j for j,x in enumerate(list2) if x == i] for i in list1]
>>> list3
[[0, 1, 5], [3, 7], [2, 6], [9], [4, 8]]

但是,您可以通过仅对 list2 进行一次迭代而不是对 list1 的每个元素进行一次迭代来提高时间复杂度。

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> for idx, el in enumerate(list2):
...     d[el].append(idx)
... 
>>> res = [d[el] for el in list1]
>>> res
[[0, 1, 5], [3, 7], [2, 6], [9], [4, 8]]

【讨论】:

【参考方案3】:

你可以把它放在另一个列表理解中:

list1 = ["A", "B", "C", "D", "E"]
list2 = ["A", "A", "C", "B", "E", "A", "C", "B", "E", "D"]
list3 =[[j for j,x in enumerate(list2) if x == i] for i in list1]
print(list3)

【讨论】:

【参考方案4】:

你可以使用一个简单的列表推导......像

[[j for j,x in enumerate(list2) if x == i] for i in list1]

【讨论】:

我的错。。我点击了发布按钮,意识到已经发布了另一个答案。以后我会注意的。

每个元素的最大重复次数的组合

...tionsperelement【发布时间】:2018-02-1013:33:44【问题描述】:我想获得一个k大小的元组列表,其中包含一个元素列表的组合(我们称之为elements),类似于itertools.combinations_with_replacement(elements,k)所做的事情。不同之处在于我想为每个... 查看详情

Pandas Dataframe 中的索引行不在索引列表中(Python)[重复]

...。例如,这里我们提取数据帧(数据)的第1,2和4行。但我想提取除这些行之外的所有内容(例如第3、5和 查看详情

对列表中每个元素索引的最大值求和 [关闭]

】对列表中每个元素索引的最大值求和[关闭]【英文标题】:Sumthemaxofeachelementindexinlist[closed]【发布时间】:2022-01-0513:55:28【问题描述】:我有两个列表task=[1,1,1,1,2,2,3,4,5,5]hours=[1,7,6,2,3,6,5,2,4,6]-.假设索引中的值是1,2,3,4,5没有重复... 查看详情

使用唯一索引索引列表

...216:36:29【问题描述】:我有一个列表说l=[10,10,20,15,10,20]。我想为每个唯一值分配一个特定的“索引”以获得[1,1,2,3,1,2]。这是我的代码:a=list(set(l))res=[a.index(x)forxinl]结果非常缓慢。l有1M个元素和100K个唯一元素。我也尝试过使 查看详情

对“列表”列表中的元素求和,每个元素都有不同的索引

】对“列表”列表中的元素求和,每个元素都有不同的索引【英文标题】:Summingelementsinalistof"list",eachwithdifferentindex【发布时间】:2018-09-1716:29:08【问题描述】:从循环中我有一个变量A:aa=pd.Series(np.random.randn(5))aaaa=[]aaaa.... 查看详情

使用 Python 将索引设置为 csv 文件中的重复行值组

...布时间】:2019-10-1518:33:33【问题描述】:我是python新手。我想为每个组重复的特定行元素集设置索引。我的数据框:data_dict=\'0_deg\':[2,11,21,-17,5,40,22,7,20,-6,-6,-6,24,21 查看详情

查找列表中元素的索引[重复]

】查找列表中元素的索引[重复]【英文标题】:Findtheindexofanelementinalist[duplicate]【发布时间】:2019-12-3103:50:46【问题描述】:我在查找列表中每个相似值的索引时遇到问题。例子:b=["a","b","a","a","b","b"]forxinb:if"a"inx:print(b.index(x))我... 查看详情

通过 XPath Sales Navigator 访问元素列表中的子项

...一张包含所有信息的卡片。我获得了一张卡片列表,然后我想为每一张卡片获取名称和标题。我尝试使用下面的代码从卡片中获取 查看详情

想要将列表列表中的每个元素放入文件中[重复]

】想要将列表列表中的每个元素放入文件中[重复]【英文标题】:Wanttoputeachelementinlistofliststoafile[duplicate]【发布时间】:2018-12-0816:27:52【问题描述】:我正在制作一个高分列表,它的顺序应该由点数决定,即列表中列表的第二个... 查看详情

如何从字典中的列表中删除元素[重复]

...素可以等于1、2或3。例如,如果元素编号9等于3(或1),我想删除四个列表中的每个第九个元素@987654322@在同一个字典中。我使用Pytho 查看详情

python - 分组列表元素[重复]

...ents[duplicate]【发布时间】:2015-08-1820:24:54【问题描述】:我想将列表中的每个元素与列表中的所有其他元素分组前-l1=[1,2,3]l2=[(1,2),(1,3),(2,3)]我尝试使用zip:l2=list(zip(l1,l1[1:]))但它给了我:l2=[(1,2),(2,3)]期望的输出:[(1,2), 查看详情

numpy数组列表中N个最高元素的索引[重复]

...的索引(行和列)。假设我有以下矩阵:a=[[4,2,3],[5,0,3]]我想获取N个最高元素的索引(行、列)列表。例如,如果我想要4个最高 查看详情

list接口概述

--1,有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与set不同,列表通常允许重复的元素。列... 查看详情

订阅/取消订阅列表中的事件[重复]

...间】:2020-11-1104:11:52【问题描述】:我有一个对象列表,我想为每个对象订阅/取消订阅一个事件(通过委托,因为我需要向方法传递额外的参数)。所以我有这样的事情:publicvoidMonitoringCtrl(boolmonitoringOn)foreach(varmh 查看详情

scrapylistreturn:如何处理/提取列表的每个元素?(代码片段)

我想问一下如何处理一个变量中提取数据的列表。由于(xpath)选择器只提取第一个.extract_first()或所有内容.extract(),我想知道,我如何迭代并只提取一个元素......如.extract()[i]和i=i+1......那怎么样?它似乎很明显,但在... 查看详情

集合

... 有序的collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。    与set不同,列表通常允许重复的... 查看详情

如何按字典值搜索带有嵌套字典的列表,返回带有字典元素的列表索引[重复]

】如何按字典值搜索带有嵌套字典的列表,返回带有字典元素的列表索引[重复]【英文标题】:Howtosearchalistwithnesteddictionarybydictionaryvalue,returningtheindexofthelistwiththedictionaryelement[duplicate]【发布时间】:2020-04-1817:28:48【问题描述】:... 查看详情

Python中的列表理解和lambda [重复]

...thon[duplicate]【发布时间】:2018-02-0602:49:51【问题描述】:我想创建一个lambda列表,但结果并不如我所愿。L=[(lambdax:x/y)foryinrange(10)]我希望列表中的每个函数都将其参数除以其索引,但所有函数仅除以最后一个索引。>>>L[1]( 查看详情