我正在尝试将shell / python黑客归为以下逻辑:
我有一个文件,其中包含14-15位数字的IMEI列表。
例如:-
123456872932343
82342512435234
230098234242342
82341436242422
我需要检查文件中上述每行的前8位,并将它们分类为模型。
例如:-
123456872932343->前8位数字12345687将表示某个型号,例如“ Model-X”
我需要遍历此列表以分析前8位数字,将其分类为模型,然后如果列表中重复8位数字,则需要增加模型计数。
在这方面有人可以帮忙吗?
答案 0 :(得分:2)
以下代码对您有用吗?
#!/bin/python
dict_model = { 'model-X': '12345687',
'model-Y': '98765432'}
count_model = { 'model-X': 0,
'model-Y': 0}
imei_list = ['123456872932343', '123456876846461', '123456876846462', '987654326846461', '987654326846462']
for x in imei_list:
for model in dict_model:
if dict_model[model] == x[0:8]:
count_model[model]+=1
print(count_model)
答案 1 :(得分:0)
您可以在字典中检查前8位数字:
list_of_numbers=["1111111111","5454545454","1111111111","4545454545","1111111111","4545454545","6666666666"]
counts={}
for i in list_of_numbers:
counts[i[:8]]=counts.get(i[:8],0)+1
print(counts)
输出:
{'111111111': 3, '545454545': 1, '454545454': 2, '666666666': 1}
答案 2 :(得分:0)
尝试使用此伪代码:
file = open(path/to/textfile , 'r')
imeis = [i.strip() for i in file.readlines()]
models = [model_int1 , model_int2, ...]
imei_dict = {}
for j in models:
temp = []
for i in imeis:
if int(i[:8]) == j:
temp.append(i)
imei_dict[j] = temp
输出应为:
imei_dict = {model_int1 : [list of all imei with that model] , model_int2 : [...]}
如果要获取某些型号对应的imei号,请尝试以下操作:
imei_count = {k:len(imei_dict[k]) for k in imei_dict }