如何只打印重复标签超过3次

2024-10-03 23:17:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行对象检测ANPR,它打印一些车辆编号标签,如(text=MH02MH8767)

MH02MH8767
MH02MH8767
MH02MH67
AP03MN7834
AP0N7834
AP03MN7834

一次一个号码。我想检查重复和打印数字出现2或3次。你知道吗

比如:

MH02MH8767
AP03MN7834

忽略只打印一次。所有这些都是动态的。你知道吗

我怎样才能做到这一点?你知道吗

包含车牌号值的文本变量。你知道吗

我使用了以下方法:

list1=str(text)
_size = len(list1) 
repeated = [] 

for i in range(_size): 
    k = i + 1
    for j in range(k, _size): 
        if x[i] == x[j] and x[i] not in repeated: 
             repeated.append(x[i]) 
print("repeated",repeated)

另一个是:

duplicates=[]

for value in list1:
   if list1.count(value) > 1:
      if value not in duplicates:
         duplicates.append(value)

print("duplicates",duplicates) 

我面临的问题是如何在列表中存储这个动态(文本)变量,以及如何检查重复,因为每次列表都会更新。你知道吗

输出应为:

比如:

MH02MH8767
AP03MN7834

Tags: textin文本forsizeifvaluenot
2条回答

您可以将元素存储在数组中,然后使用以下代码打印副本

arr = [1, 2, 3, 4, 2, 7, 8, 8, 3];
print("Duplicate elements in given array: ");
for i in range(0, len(arr)):
    for j in range(i+1, len(arr)):
        if(arr[i] == arr[j]):
            print(arr[j]);

结果:

Duplicate elements in given array:
2
3 
8

我建议使用dict,其中键是您拥有的数字,值是您获得它们的次数。当你得到一个数字时,要么是一个新的数字,然后你用1的值把它加到dict中,否则你就把它的值增加1,如果这个值大于或等于2,你就打印副本。你知道吗

像这样:

duplicates = {}
chars = str(text)

for char in chars:
    if char not in duplicates.keys():
        duplicates[char] = 1
    else:
        duplicates[char] += 1
    if duplicates[char] >= 2:
        print('Found duplicate' + char)

或者更简洁

duplicates = {}
chars = str(text)

for char in chars:
    duplicates[char] = duplicates.get(char, 0) + 1
    if duplicates[char] >= 2:
        print('Found duplicate' + char)

相关问题 更多 >