我必须根据元素的值用列表中元素的位置创建子组,这意味着子组将包含列表中相同的元素。你知道吗
但是,子组的大小将取决于组的值。你知道吗
示例:A = [2,1,1,2,1]
将创建[0, 3] [1] [2] [4]
我已经写了下面的代码。然而,所有的测试用例都没有通过。你知道吗
如果A=[2,1,2,1,2,2],则无法获得正确的输出。我的情况是:
0 2
4 5
1
3
然而,期望是:
0 2
1
3
4 5
下面是我的代码:
A = [2,1,1,2,1]
uniqueCounts = []
for x in A:
if x not in uniqueCounts:
uniqueCounts.append(x)
for i in range(len(uniqueCounts)):
n = uniqueCounts[i]
p = [i for i,x in enumerate(A) if x == n]
if(len(p)==1):
print(*p)
else:
q = int(len(p)/n)
count = 0
c = 0
while count < q:
print(*p[c:n+c])
c = c + n
count = count + 1
您应该使用numpy和函数
np.where()
:输出:
然后您可以使用此数组将其转换为列表,使用
shape
或len
计算元素的数量。。。等等。你知道吗要返回代码:
set
正在返回一个没有重复项的集。将其转换为列表可以直接获得唯一计数。你知道吗结论:
有些工作仍然需要得到所需的输出,我会让你:)
首先用唯一的元素对列表
A
排序。不会失去秩序。然后从原始列表中找到排序列表中元素的所有索引相关问题 更多 >
编程相关推荐