Như đã đề cập trong các câu trả lời trước, chuỗi thực sự là cách quá dài. Vì vậy, bạn phải nhắm mục tiêu (a) (các) ngôn ngữ cụ thể.
[EDIT: Tôi nhận ra đó là trường hợp cho mục đích sử dụng ban đầu của tôi, và đối với hầu hết các công dụng, tôi đoán vậy. Tuy nhiên, trong khi chờ đợi, Mark Tolonen đã đưa ra một câu trả lời tốt cho câu hỏi như nó đã được hỏi, vì vậy tôi đã chọn câu trả lời của mình, mặc dù tôi đã sử dụng các giải pháp sau đây]
này có thể dễ dàng thực hiện với sự "Locale" mô-đun:
import locale
import string
code = 'fr_FR' ## Do NOT specify encoding (see below)
locale.setlocale(locale.LC_CTYPE, code)
encoding = locale.getlocale()[1]
letters = string.letters.decode(encoding)
bằng "chữ cái" là chuỗi unicode dài 117 ký tự.
Rõ ràng, string.letters phụ thuộc vào mã hóa mặc định cho mã ngôn ngữ đã chọn, thay vì trên chính ngôn ngữ đó. Đặt ngôn ngữ thành fr_FR hoặc de_DE hoặc es_ES sẽ cập nhật chuỗi ký tự thành cùng một giá trị (vì tất cả chúng đều được mã hóa theo ISO8859-1 theo mặc định).
Nếu bạn thêm mã hóa vào mã ngôn ngữ (de_DE.UTF-8), mã hóa mặc định sẽ được sử dụng thay cho chuỗi. Điều đó sẽ gây ra một UnicodeDecodeError nếu bạn sử dụng phần còn lại của mã trên.
Câu trả lời hay cho câu hỏi như tôi đã hỏi.Tuy nhiên, tôi tìm thấy một giải pháp phù hợp hơn với nhu cầu của tôi (xem câu trả lời của riêng tôi dưới đây) – emm
'ud.category.c in ('Lu', 'Ll')' – jsbueno