Tôi đang tìm mẫu phù hợp với danh sách (có thể trống) bao gồm các đối tượng nguyên tử giống hệt nhau (theo nghĩa Equal []), nhưng tôi không thể tìm ra. Mọi sự trợ giúp sẽ rất được trân trọng.Mẫu để khớp với danh sách các phần tử giống hệt nhau
Trả lời
Tất cả các câu trả lời cho đến nay dường như đã bỏ lỡ yêu cầu rằng các đối tượng được đối sánh cần phải là nguyên tử. Sau đây thực hiện điều này:
Cases[testList, {a___?AtomQ} /; Equal[a]]
Nếu bạn không xác định giống hệt theo nghĩa Equal
bạn có thể đã sử dụng:
Cases[testList, {(a_?AtomQ) ...}]
Với một danh sách kiểm tra sửa đổi một chút bạn sẽ thấy các phương pháp khác không yêu cầu
testList = {{1, 1.0, 1.0}, {a, b, c}, {Exp[Pi] + 1, Exp[Pi] + 1, Exp[Pi] + 1}, {}, {3}};
tất cả đều khớp chính xác với phần tử thứ 3.
+1 để đọc kỹ :) –
Rất tiếc. Vâng, tôi hoàn toàn bỏ lỡ điều đó. –
Cảm ơn bạn, ba phiên bản của bạn với hành vi phù hợp khác nhau một cách tinh tế là rất có tính hướng dẫn. – reddish
Tính năng này có phù hợp với bạn không?
testList = {
{1, 1.0, 1.},
{a, b, c},
{0, Exp[Pi*I] + 1.0, Sin[Pi]}
}
Cases[testList, _List?(Equal @@ # &)]
Tôi không biết tại sao, nhưng tôi thường có xu hướng quên cú pháp '_? (Cond)'. Ví dụ tốt đẹp để ghi nhớ nó. –
Sử dụng Condition
, thay vì PatternTest
:
In[31]:= testList = {{1, 1.0, 1.}, {a, b, c}, {0, Exp[Pi*I] + 1.0,
Sin[Pi]}, {}, {3}};
Cases[testList, {a___} /; Equal[a]]
Out[32]= {{1, 1., 1.}, {0, 0., 0}, {}, {3}}
(và mở rộng trên danh sách các trường hợp thử nghiệm của Mark để che danh sách rỗng và singleton.)
- 1. Mẫu phù hợp với các giá trị giống hệt nhau
- 2. Mẫu hình Ocaml khớp với nhiều phần tử trong một danh sách cùng một lúc
- 3. Tìm các phần tử "không giống nhau" trong hai mảng
- 4. Hiển thị danh sách giống hệt nhau - Cột không kéo dài trên một
- 5. So khớp mẫu danh sách bằng Python
- 6. Thử nghiệm phần tử trong danh sách
- 7. Các ký tự giống hệt nhau trong Unicode
- 8. Các cụm hadoop có chạy trên phần cứng giống hệt nhau không?
- 9. Cách Pythonic để chọn các phần tử danh sách có xác suất khác nhau
- 10. tất cả các giá trị danh sách giống nhau
- 11. sử dụng hàm băm để xác định xem 2 datafram giống hệt nhau (PHẦN 01)
- 12. Làm cách nào để áp dụng itertools.product cho các phần tử của danh sách danh sách?
- 13. Thêm các phần tử vào danh sách từ điển
- 14. Matching hai Danh sách các loại khác nhau với nhau
- 15. Chương trình Python chia danh sách thành hai danh sách với các phần tử xen kẽ
- 16. Erlang: Phần tử đầu tiên trong danh sách khớp với một số điều kiện (không đánh giá phần còn lại của các phần tử)
- 17. Các nguồn Java giống hệt nhau được biên dịch thành các lớp nhị phân khác nhau
- 18. Haskell - các phần tử xen kẽ từ hai danh sách
- 19. Khi cùng một phần tử XML khớp với hai mẫu XSLT thông qua các XPath khác nhau, mẫu nào thực hiện và tại sao?
- 20. Java: Sau khi thêm 2 đối tượng giống hệt vào Tập, nó chứa 2 phần tử
- 21. Tìm các chỉ mục của một phần tử trong danh sách lồng nhau?
- 22. Python: Đếm tần số của các phần tử trong danh sách các danh sách
- 23. Python: Đối với mỗi phần tử danh sách áp dụng một hàm trên danh sách
- 24. Cách đơn giản để thêm các phần tử từ danh sách này sang danh sách khác
- 25. đếm các phần tử mới trong danh sách vector
- 26. giữ 2 mysql dbs giống hệt nhau trên hai máy
- 27. Di chuyển các phần tử Python giữa các danh sách
- 28. Python: Thay thế một phần tử trong danh sách các danh sách (# 2)
- 29. Tại sao Assert.AreEqual (T obj1, Tobj2) thất bại với các đối tượng giống hệt nhau
- 30. Đếm tất cả các phần tử trong danh sách danh sách lồng nhau tùy ý mà không đệ quy
Theo mẫu, bạn có muốn nói cụm từ thông dụng không? – Dan
Bạn đã thử sử dụng PatternSequence chưa? http://reference.wolfram.com/mathematica/ref/PatternSequence.html –
@Dan I Mathematica có _patterns_, tức là, các biểu thức có nghĩa là phù hợp với cấu trúc ngôn ngữ/dữ liệu Mathematica, và 'StringExpression' và 'RegularExpression' có nghĩa là cho _strings_ . Màu đỏ dường như đang đề cập đến các mẫu. –