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

Python – Trích xuất phần tử đơn số (Mono-digit elements)

Trích xuất các phần tử trong danh sách là số nguyên có tất cả chữ số giống nhau (mono-digit: 1, 22, 333, 4444...). Sử dụng list comprehension và all().

Mã nguồn


my_list = [863, 1, 463, "pyt", 782, 241, "is", 639, 4, "fun"]
print("Danh sách:", my_list)

# Chuyển sang string, kiểm tra tất cả ký tự bằng ký tự đầu
my_result = [index for index in my_list if all(str(element) == str(index)[0] for element in str(index))]

print("Phần tử mono-digit:", my_result)

Kết quả

Danh sách: [863, 1, 463, 'pyt', 782, 241, 'is', 639, 4, 'fun']
Phần tử mono-digit: [1, 4]

Giải thích

  • Duyệt index trong my_list (ghi đè tên biến, dễ nhầm lẫn).
  • str(index) chuyển phần tử thành chuỗi.
  • for element in str(index) lặp qua các ký tự của chuỗi đó.
  • str(element) == str(index)[0] so sánh mỗi ký tự với ký tự đầu tiên.
  • all(...) True nếu tất cả ký tự giống nhau.
  • 1 → "1" (1 ký tự) → True. 4 → "4" → True. 863 → "8","6","3" → False.
  • Chuỗi "pyt" cũng được kiểm tra: 'p','y','t' khác nhau → False.

Sửa tên biến tránh nhầm lẫn


my_result = [x for x in my_list if all(c == str(x)[0] for c in str(x))]

Chỉ hoạt động cho số nguyên dương. Số âm: str(-11) = "-11", ký tự đầu '-' ≠ '1'.