используя python 3.6 для подрезки среза с одинаковым символом char [duplicate]

Также вы можете рассмотреть 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

16
задан Grijesh Chauhan 5 April 2014 в 19:40
поделиться

3 ответа

Используйте re.finditer() :

>>> s='111234'
>>> [m.group(0) for m in re.finditer(r"(\d)\1*", s)]
['111', '2', '3', '4']
15
ответ дан devnull 27 August 2018 в 06:46
поделиться

Попробуйте следующее:

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']
6
ответ дан Sabuj Hassan 27 August 2018 в 06:46
поделиться

Если вы хотите сгруппировать все повторяющиеся символы, вы также можете использовать 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']
14
ответ дан thefourtheye 27 August 2018 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: