Также вы можете рассмотреть MAC-адрес адаптера Wi-Fi. Получено так:
WifiManager wm = (WifiManager)Ctxt.getSystemService(Context.WIFI_SERVICE);
return wm.getConnectionInfo().getMacAddress();
Требуется разрешение android.permission.ACCESS_WIFI_STATE
в манифесте.
Сообщается, что он доступен, даже если Wi-Fi не подключен. Если Джо из приведенного выше ответа дает этому возможность попробовать свои многочисленные устройства, это было бы хорошо.
На некоторых устройствах он недоступен, когда Wi-Fi отключен.
ПРИМЕЧАНИЕ. Начиная с Android 6.x, он возвращает согласованный поддельный MAC-адрес: 02:00:00:00:00:00
Используйте re.finditer()
:
>>> s='111234'
>>> [m.group(0) for m in re.finditer(r"(\d)\1*", s)]
['111', '2', '3', '4']
Попробуйте следующее:
s = '111234'
l = re.findall(r'((.)\2*)', s)
## it this stage i have [('111', '1'), ('2', '2'), ('3', '3'), ('4', '4')] in l
## now I am keeping only the first value from the tuple of each list
lst = [x[0] for x in l]
print lst
вывод:
['111', '2', '3', '4']
Если вы хотите сгруппировать все повторяющиеся символы, вы также можете использовать itertools.groupby
, например
from itertools import groupby
print ["".join(grp) for num, grp in groupby('111234')]
# ['111', '2', '3', '4']
. Если вы хотите убедиться, что хотите только цифры, затем
print ["".join(grp) for num, grp in groupby('111aaa234') if num.isdigit()]
# ['111', '2', '3', '4']