Tôi muốn để xác định xem một danh sách chứa một chuỗi nào đó, vì vậy tôi sử dụng một biểu thức máy phát điện, như vậy:Python biểu hiện phát ngoặc kỳ quặc
g = (s for s in myList if s == myString)
any(g)
Tất nhiên tôi muốn nội tuyến này, vì vậy tôi làm:
any((s for s in myList if s == myString))
Sau đó, tôi nghĩ rằng nó sẽ trông đẹp hơn với dấu ngoặc đơn, vì vậy tôi cố gắng:
any(s for s in myList if s == myString)
không thực sự expe cting nó hoạt động. Sự ngạc nhiên! nó!
Vậy đây là Python hợp pháp hay chỉ là một cái gì đó mà triển khai của tôi cho phép? Nếu nó hợp pháp, quy tắc chung ở đây là gì?
Cảm ơn câu trả lời. 'my_string in my_list' là điều đầu tiên tôi đã thử, nhưng nó không tìm thấy một chuỗi đã có. Tôi kết luận rằng nó đã làm so sánh đối tượng hơn là so sánh giá trị, đó là những gì tôi cần. Tôi sẽ kiểm tra lại. – Ari
@Ari: Không, nó so sánh giá trị. Tôi không biết những gì đã xảy ra trong trường hợp của bạn. –
Yup, nó hoạt động. Tôi đoán tôi đã có một số lỗi khác ở đó. – Ari