2010-07-25 49 views
15

Có một danh sách như thế này:Thêm vào trước tiền tố để liệt kê các yếu tố với danh sách hiểu

['foo','spam','bar'] 

là nó có thể sử dụng danh sách hiểu biết, để có được danh sách này là kết quả?

['foo','ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar'] 
+1

Đó là "danh sách hiểu", không phải "danh sách hiểu";) –

+3

"Nối tiền tố" là một oxymoron, phải là tiền tố/tiền tố – jamylak

+0

geez các bạn đang khắc nghiệt –

Trả lời

31
In [67]: alist = ['foo','spam', 'bar'] 

In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ] 
Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar'] 
+0

Cảm ơn bạn vì điều đó. Tôi đã sử dụng chính xác cùng một ý tưởng để đệm danh sách với các phần tử danh sách trống như sau: * [[]] + [trống + [] cho char trong [[i] cho i trong phạm vi (len (văn bản))] để trống trong (char , [])] * dẫn đến danh sách như sau: * [[], [i], [], [o], [], [u], []] *. Vì vậy, điều này rất hữu ích cho việc tạo ra một danh sách các chuỗi nối nếu có ai quan tâm. –

1

Với comprehensions danh sách, bạn đang tạo danh sách mới, không phụ thêm yếu tố vào một danh sách hiện có (có thể có liên quan trên bộ dữ liệu thực sự lớn)

Tại sao nó phải là một danh sách hiểu chưa? Chỉ vì python có chúng không làm cho nó thực sự mã hóa xấu để sử dụng một vòng lặp for.

Các vấn đề liên quan