Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Chuỗi ký tự liên tiếp cách đều (Equidistant consecutive characters)

Khi cần tìm chuỗi có các ký tự liên tiếp cách đều nhau (theo mã ASCII), ta dùng list comprehension, toán tử all và hàm ord().

Ví dụ

my_list = ["abc", "egfg", "mpsv", "abed", 'xzbd', 'agms']
print("Danh sách là:")
print(my_list)

my_result = [sub for sub in my_list if all(
    ord(sub[index + 1]) - ord(sub[index]) == ord(sub[1]) - ord(sub[0])
    for index in range(0, len(sub) - 1)
)]

print("Danh sách kết quả:")
print(my_result)

Kết quả đầu ra

Danh sách là:
['abc', 'egfg', 'mpsv', 'abed', 'xzbd', 'agms']
Danh sách kết quả:
['abc', 'mpsv', 'agms']

Giải thích

  • abc: a(97)→b(98)→c(99), chênh lệch = 1.
  • mpsv: m(109)→p(112)→s(115)→v(118), chênh lệch = 3.
  • agms: a(97)→g(103)→m(109)→s(115), chênh lệch = 6.
  • egfg: e→g (+2), g→f (-1) → không đều.
  • abed: a→b (+1), b→e (+3) → không đều.
  • xzbd: x→z (+2), z→b (-24) → không đều.

Ý nghĩa: Tìm chuỗi các ký tự tạo thành cấp số cộng theo mã ASCII.