当前位置: 首页 > 面试题库 >

内部列表中的第一项尽可能有效

黄流觞
2023-03-14
问题内容

我在python中有一个协调的存储列表, A[row,col,value]用于存储非零值。

如何获取所有行索引的列表?我希望这A[0:][0]可以print A[0:]打印整个列表,但print A[0:][0]只能打印A[0]

我问的原因是为了有效计算每行中非零值的数量, range(0,n)在n为总行数的地方进行迭代。这应该比我目前的方式 便宜 得多for i in range(0,n): for j in A: ...

就像是:

c = []
# for the total number of rows
for i in range(0,n):
     # get number of rows with only one entry in coordinate storage list
     if A[0:][0].count(i) == 1: c.append(i)                
return c

过度:

c = []
# for the total number of rows 
for i in range(0,n):
    # get the index and initialize the count to 0 
    c.append([i,0])
    # for every entry in coordinate storage list 
    for j in A:
        # if row index (A[:][0]) is equal to current row i, increment count  
        if j[0] == i:
           c[i][1]+=1
return c

编辑:

使用Junuxx的答案,这个问题和这篇博文,我想到了以下内容 (用于返回单 例行的 数量)
,对于当前的问题大小,它A比我最初尝试的要快得多。但是,它仍然随着行和列的数量而增长。我想知道是否有可能不必遍历A而只是反复进行n

# get total list of row indexes from coordinate storage list
row_indexes = [i[0] for i in A]
# create dictionary {index:count}
c = Counter(row_indexes)    
# return only value where count == 1 
return [c[0] for c in c.items() if c[1] == 1]

问题答案:

应该这样做:

c = [x[0] for x in A]

这是一个列表推导,采用的每个元素的第一个(子)元素A



 类似资料:
  • 问题内容: 我想知道in 中column 的可能值。我认为该列等于或中的STATE列。 我设法确定了三个代码: 以上显示: 在sl 0行上:tcp / 2208上的侦听端口。 在第sl 6行:在tcp / 22上建立的会话。 在第sl 7行:ssh注销后处于TIME_WAIT状态的套接字。没有索引节点。 任何人都可以在此列表上展开吗?该手册的主题很简洁: 与此相关的是,上面的/ proc / ne

  • 问题内容: 在Python中,我有一个n个列表的列表,每个列表具有可变数量的元素。如何创建包含所有可能排列的单个列表: 例如 我想要 注意,我事先不知道n。我以为itertools.product是正确的方法,但它需要我提前知道参数的数量 问题答案: 您不需要事先知道使用

  • 问题内容: 这可能是一个愚蠢的问题,但是这里有: 是否可以制作一个动态表,使其能够包含具有可变列数和自定义列名的行? 我浏览了EAV建模,但看起来很沉重。一个真实的例子可能是这样的: 假设我有一个客户登记册。但是每个客户可能要输入不同的信息。并且取决于您要输入的内容,它应该反映在数据库中。(即每个客户都有不同的列) 这是不可能/可能吗? 更新: 标准方法(即, 具有一个包含所有需要的列的表,并且仅

  • 我正在寻找一个函数,使列表尽可能未排序。最好是Python。 背景故事: 我想检查URL的状态,看看URL是否给出404。我只是使用和模块。没什么花哨的。 现在我不想让服务器过载,所以我想尽量减少同时检查同一域名上的网址。我有这样的想法来排序的URL的方式是项目是彼此接近(具有相同的排序键=域名)被放置尽可能远的彼此在列表中。 以数字为例: 可以不分类为: 我想说的是,我们可以通过将相等项(具有相

  • 问题内容: 可以说我有: 我想检索每个内部列表的第一个元素: 无需执行此操作(我当前的hack): 我敢肯定有一个班轮,但我真的不知道我在寻找什么。 问题答案: 只需将您的列表组合更改为: 要么: 或者,如果您要处理“适当的数组”: 和:

  • 我有一个奇怪的场景,每次我从的第一项中的微调器中选择一个值,最后一个项的微调器值与第一项相同。只有当ListView项目总数为5个及以上时,才会发生这种情况。我注释掉了代码,只保留了声明,但它仍在发生。这是Android系统的漏洞吗? 澄清: > 我的ListView的为空 我的微调器的被注释掉。 Android SDK工具版本为22.6.2 Android SDK平台工具是19.0.1 以下是适