Найти - Пользователи
Полная версия: Списки
Начало » Python для новичков » Списки
1
Patrik
Добрый день, подскажите пожалуйста.

Есть список путей, к примеру:
a = ('C:\test' , ‘C:\test\1’, ‘C:\test\2’, ‘C:\test\2\3’)

как исключить из списка C:\test и C:\test\2, так как они входят в C:\test\1 и C:\test\2\3
Hyyudu
for x in a[:]:
    a=filter (lambda t: not (x.startswith(t) and x != t), a)
Только надо, чтобы a было списком, а не кортежем (не в круглых скобках должно быть, а в квадратных)
Patrik
Hyyudu: Скобки я проглядел, действительно в квадратных должны быть.
Попробовал в действие код, он выдал:
C:\test\1
C:\test\2
C:\test\2\3

C:\test\2 входит в C:\test\2\3, его по идее нужно было отбросить.
terabayt
У меня все правильно работает!
>>> a = [r'C:\test' , r'C:\test\1', r'C:\test\2', r'C:\test\2\3']
>>> for x in a:
...     a = filter(lambda t: not (x.startswith(t) and x != t), a)
... 
>>> a
['C:\\test\\1', 'C:\\test\\2\\3']
py.user.next
Patrik
как исключить из списка C:\test и C:\test\2, так как они входят в C:\test\1 и C:\test\2\3

Строка “C:\test” входит во все эти строки.
Hyyudu
Patrik, вы слеши в строках не экранировали, может, в этом дело
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB