Thông thường tôi biết chúng ta có thể làm sum([func(x,x) for x in i])
, nhưng tôi có một nếu kiểm tra và hai cho vòng, vì vậy cách pythonic nhất để viết mã dưới đây là những gì. bạn có thể giả định rằng sự giống nhau sẽ trả về một số bất kể bạn cung cấp loại nào. Bạn cũng có thể giả định rằng nó sẽ thực sự chỉ nhận được int và ký tự.Python, cách tốt nhất để viết tổng của hai cho vòng
x = 0
if isinstance(a, dict) or isinstance(a, list) or isinstance(a, tuple):
for i in a:
for j in b:
x += similarity (i,j)
'if' không nằm trong vòng lặp nào, vì vậy… tại sao cần phải nằm trong' tổng hợp'? – abarnert
Ví dụ của bạn, thay vì danh sách hiểu 'sum ([func (x, y) cho x trong i])' bạn có thể sử dụng 'sum (func (x, y) cho x trong i)' làm trình tạo và không tạo danh sách trung gian –