Удалить все элементы, которые встречаются в одном списке, из другого

Я нашел более простое решение этой проблемы, которое также изменило сгенерированный импорт, например com.test.testpackagechange.R, и заняло около минуты.

Ваш первый шаг - открыть Android Studio и открыть окно замены всех (Mac: cmd + shift + R, Windows, я предполагаю: ctrl + shift + R). Введите имя вашего старого пакета и тот, что ниже вашего нового имени пакета. Нажмите Найти. Это может занять некоторое время, поскольку он также просматривает созданные элементы. Если у него более 1000 просмотров, просто нажмите «Продолжить».

enter image description here

После этого нажмите «Заменить все», чтобы заменить старое имя пакета новым.

enter image description here

Теперь закройте Android Studio и перейдите в Finder на Mac или Windows Explorer в Windows. Измените имя папки на новое имя пакета, например:

enter image description here

Теперь снова откройте Android Studio. Gradle синхронизируется, и имя вашего пакета должно быть изменено на новое.

Я нашел, что это самый простой и тот, который охватывает все области, такие как сгенерированные файлы.

313
задан APerson 22 June 2015 в 07:09
поделиться

1 ответ

используйте Понимания Набора {x для x в l2} или установите (l2), который будет установлен, затем используйте Понимания Списка для получения списка

l2set = set(l2)
l3 = [x for x in l1 if x not in l2set]

код эталонного тестирования:

import time

l1 = list(range(1000*10 * 3))
l2 = list(range(1000*10 * 2))

l2set = {x for x in l2}

tic = time.time()
l3 = [x for x in l1 if x not in l2set]
toc = time.time()
diffset = toc-tic
print(diffset)

tic = time.time()
l3 = [x for x in l1 if x not in l2]
toc = time.time()
difflist = toc-tic
print(difflist)

print("speedup %fx"%(difflist/diffset))

результат эталонного тестирования:

0.0015058517456054688
3.968189239501953
speedup 2635.179227x    
1
ответ дан 23 November 2019 в 01:08
поделиться
Другие вопросы по тегам:

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