Size: a a a

Python beginners

2017 April 20

I

Igor in Python beginners
Тогда надо немного по-другому
источник

I

Igor in Python beginners
ща
источник

I

Igor in Python beginners
In [4]: re.match(r'.*\.pd\.sdd$', dir_list[-1])
Out[4]: <_sre.SRE_Match object; span=(0, 14), match='U875423.pd.sdd'>

In [5]: re.match(r'.*\.pd\.sdd$', dir_list[-2])
источник

I

Igor in Python beginners
и потом циклом, например
источник

I

Igor in Python beginners
In [6]: for file in dir_list:
  ...:     if re.match(r'.*\.pd\.sdd$', file):
  ...:         print('Gotcha!', file)
  ...:
Gotcha! U875423.pd.sdd
источник

A

Aleksey in Python beginners
Через цикл я делал. Мне казалось, что index позволяет сделать то же самое но без цикла
источник

A

Aleksey in Python beginners
Блин...
источник

I

Igor in Python beginners
Можно сделать через re.compile, re.match и filter
источник

A

Aleksey in Python beginners
Спасибо
источник

I

Igor in Python beginners
сорри, отвлекли
если еще актуально, вон пример со стековерфлоу
источник

I

Igor in Python beginners
в твоем случае буедт matches = filter(pd_sdd.match, dir_list)
источник

I

Igor in Python beginners
и если результат filter'а будет пустой, значит не нашлось
источник

I

Igor in Python beginners
если не пустой - значит вернутся подходящие
источник

A

Aleksey in Python beginners
Спасибо, помогло =)
источник

JW

Johnnie Walker in Python beginners
как проверить, что в двух списках содержатся объекты одинаковых типов и в одинаковом кол-ве? например:
list_1 = [SomeShit(), ShitSome(), ShitShit()]

list_2 = [type ShitShit, type ShitSome, type SomeShit]

в этом случае они должны быть равны. я чето запутался в этих isinstance()
источник

АР

Александр Ремизов in Python beginners
Johnnie Walker
как проверить, что в двух списках содержатся объекты одинаковых типов и в одинаковом кол-ве? например:
list_1 = [SomeShit(), ShitSome(), ShitShit()]

list_2 = [type ShitShit, type ShitSome, type SomeShit]

в этом случае они должны быть равны. я чето запутался в этих isinstance()
list1 = [1, 'd', 5.6]
list2 = [4, 'f']

result = {}

for item in list1:
   key = type(item).__name__
   if key in result:
       result[type(item).__name__] += 1
   else:
       result[type(item).__name__] = 1

for item in list2:
   key = type(item).__name__
   if key in result:
       result[type(item).__name__] -= 1
   else:
       result[type(item).__name__] = -1

for key in result:
   if result[key]!=0:
       print('Объектов %s в списке %s больше' % (key, ['list1', 'list2'][int((abs(result[key]) - result[key])/abs(result[key])/2)]))
источник

JW

Johnnie Walker in Python beginners
воу
источник

JW

Johnnie Walker in Python beginners
Александр Ремизов
list1 = [1, 'd', 5.6]
list2 = [4, 'f']

result = {}

for item in list1:
   key = type(item).__name__
   if key in result:
       result[type(item).__name__] += 1
   else:
       result[type(item).__name__] = 1

for item in list2:
   key = type(item).__name__
   if key in result:
       result[type(item).__name__] -= 1
   else:
       result[type(item).__name__] = -1

for key in result:
   if result[key]!=0:
       print('Объектов %s в списке %s больше' % (key, ['list1', 'list2'][int((abs(result[key]) - result[key])/abs(result[key])/2)]))
у меня чуть покороче вышло: https://gist.github.com/ba44fe2078c0804508e7d59e67097b8d
источник

АР

Александр Ремизов in Python beginners
Я бы не сказал, что у тебя короче.
источник

АР

Александр Ремизов in Python beginners
Посчитай по количеству операций
источник