from operator import attrgetter
class A:
def __init__(self, x, y):
self.x = x
self.y = y
def __getattr__(self, attr):
return 1
a = A(2, 3)
vals = attrgetter('x', 'y', 'z')(a)
print(sum(vals))
Задачи по питону и машинному обучению: алгоритмы, функции, классы, регулярные выражения, итераторы, генераторы, ООП, исключения, numpy, pandas, matplotlib, scikit-learn, TensorFlow и др. #Python #ml
from operator import attrgetter
class A:
def __init__(self, x, y):
self.x = x
self.y = y
def __getattr__(self, attr):
return 1
a = A(2, 3)
vals = attrgetter('x', 'y', 'z')(a)
print(sum(vals))from operator import itemgetter
dicts = [{"a": 1, "b": 2}, {"a": -1, "b": 3}]
max_ = max(dicts, key=itemgetter("a"))
min_ = min(dicts, key=itemgetter("b"))
print(max_['a'], min_['b'])from operator import itemgetter
dicts = [{"a": 1, "b": 2}, {"a": -1, "b": 3}]
max_ = max(dicts, key=itemgetter("a"))
min_ = min(dicts, key=itemgetter("b"))
print(max_['a'], min_['b'])from collections import Counter l1 = ["a", "a", "b", "c"] l2 = ["a", "b", "b", "c"] c1 = Counter(l1) c2 = Counter(l2) new_c1 = c1 + c2 new_c2 = c1 - c2 mc1 = new_c1.most_common(1) mc2 = new_c2.most_common(1) print(mc1[0][1], mc2[0][1])
letters = ['a', 'b', 'a', 'c', 'd', 'd', 'a'] from collections import Counter letter_counts = Counter(letters) top = letter_counts.most_common(2) print(top[0][1])
a = slice(0, 0, -1) a.start = 1 s = "abcdef" print(s[a])
a = slice(10) print(a.start, a.stop, a.step)
a = slice(-1000, 1100, -99) s = "abcdef" print(len(s[a]))
s = "abcdef" a = slice(-10**99, 10**99) print(s[a])
s = "abcdef" a = slice(-1e99, 1e99) print(len(s[a]))
s = "abcdef"
a = slice(-float('inf'), 1000)
print(len(s[a]))from string import ascii_lowercase as s a = slice(-3, 50, 2) x = a.indices(5) print(s[x[0]:x[1]:x[2]])
def f(items, key=None):
s = set()
for item in items:
val = item if key is None else key(item)
if val not in s:
yield item
s.add(val)
arr = [1.1, 1.2, 2.1, 3.0]
y = f(arr, key=lambda d: sum([int(x) for x in str(d).split(".")]))
print(*y)