Nihayetinde atama bir "Beyan" değil, bir "İfade", bu yüzden bir lambda kullanılamaz İfade veya liste anlama. Denediğin şeyi başarmak için normal bir işleve ihtiyacın var.
[setattr(obj,'name','blah') for obj in objects]
Ama kullanmak etmeyiniz:
(None
listesini dönen) yapacak bir yerleşik bulunmaktadır. Sadece bir döngü kullanın. Verimlilikte herhangi bir fark olduğunu fark edeceğinizden ve bir döngü çok daha net olduğundan şüpheliyim.
for obj in objects: obj.name = "blah"
Birinin onlara çünkü çoğu insan olduklarını liste comprehensions kullanmak istediğinizi bulmak: (neden görmüyorum rağmen) gerçekten bir 1-astar gerekiyorsa
"hızlı". Bu doğru, ama sadece yeni bir liste oluşturmak için. Yan etkiler için liste kavramasının kullanılması, herhangi bir performans avantajına yol açması muhtemel değildir ve kodunuz okunabilirlik açısından acı çekecektir. Gerçekten, .append
ile eşdeğer döngü yerine liste kavramasının kullanılmasının en önemli sebebi, okunması daha kolay olmasıdır.
böyle bir şey mümkün nerede olacağını Geçenlerde javascript bir sürü kodlama oldum
: Bir bağlam anahtarının biraz yani 'const sonuç = objects.map (object => object.name = 'selam')' python'a geri dönüyorum. – cosmosa