Có cách nào thông minh để viết danh sách hiểu hơn nhiều danh sách không?Giá trị Python của nhiều danh sách trong một danh sách hiểu
Tôi biết tôi có thể sử dụng danh sách phạm vi riêng làm chỉ mục nhưng theo cách này tôi phải biết chiều dài (hoặc nhận riêng biệt với cuộc gọi hàm len()
).
>>> a = range(10)
>>> b = range(10, 0, -1)
>>> [(a[x],b[x]) for x in range(10)]
[(0, 10), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5), (6, 4), (7, 3), (8, 2), (9, 1)]
Tôi rất muốn có một cái gì đó như thế này:
>>> [(a,b) for a in range(10) and b in range(10, 0, -1)]
[(0, 10), (1, 9), (2, 8), (3, 7), (4, 6), (5, 5), (6, 4), (7, 3), (8, 2), (9, 1)]
Làm thế nào bạn sẽ viết danh sách hiểu? Có cách nào để làm điều này với itertools?
Danh sách phạm vi chỉ phù hợp với bất kỳ danh sách nào và tôi không nhất thiết muốn nhận một bộ dữ liệu. cũng có thể là một hàm lấy a và b làm tham số. Vì vậy, zip không phải là những gì tôi muốn.
CẬP NHẬT: Với "Vì vậy, zip không phải là những gì tôi muốn." Tôi có nghĩa là tôi không muốn zip(range(10), range(10, 0, -1))
Bản sao của [9184497] (http://stackoverflow.com/questions/9184497/python-list-comprehension-function-with- arguments-in-two-lists)? – quazgar