Sobes.tech
Junior

Ифодаи lambda дар Python чист?

sobes.tech AI

Ҷавоб аз AI

Дархости lambda дар Python як функсияи беном аст, ки бо калиди lambda муайян карда мешавад. Синтакси оддӣ дорад: lambda arguments: expression.

Хусусиятҳои асосӣ:

  • Беном: Надорад номи.
  • Дар як сатр: Мебояд дар як сатр коди бошад.
  • Танҳо як израз: Мебошад танҳо як израз, ки натиҷаи он баргардонида мешавад.
  • Мумкин аст ҳар шумораи аргументҳоро қабул кунад: Аммо танҳо як израз.

Масолҳои истифода:

# Функсияи lambda оддӣ барои ду баробар кардани як шумора
double = lambda x: x * 2
# Истифода:
# print(double(5)) # Натиҷа 10 мебарояд

# Lambda бо чанд аргумент
add = lambda a, b: a + b
# Истифода:
# print(add(3, 7)) # Натиҷа 10 мебарояд

# Истифодаи lambda бо функсияҳои дараҷаи боло
# Масалан, filter()
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# print(even_numbers) # Натиҷа [2, 4, 6]

# Истифодаи lambda бо map()
squared_numbers = list(map(lambda x: x**2, numbers))
# print(squared_numbers) # Натиҷа [1, 4, 9, 16, 25, 36]

# Истифодаи lambda ҳамчун аргумент барои калид дар sorted()
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
sorted_data_by_age = sorted(data, key=lambda item: item['age'])
# print(sorted_data_by_age) # Натиҷа рӯйхати ба синну сол тақсимшуда

Изразҳои lambda барои функсияҳои хурд ва якдафъаина, ки дар ҳамоҳангӣ бо функсияҳои дараҷаи боло (map, filter, sorted) истифода мешаванд, муфиданд. Аммо барои вазифаҳои мураккаб ё функсияҳое, ки ба ҳуҷҷатгузорӣ (docstrings) ниёз доранд, тавсия дода мешавад, ки функсияҳои оддӣ, ки бо def муайян шудаанд, истифода шаванд.