Hướng dẫn is alphanumeric with space python? - là chữ và số với trăn không gian?

Tôi đã từng gặp vấn đề chính xác này, sự khác biệt duy nhất là tôi không thể nhập bất cứ thứ gì hoặc sử dụng Regex.

Để giải quyết vấn đề của tôi, tôi đã tạo một danh sách chứa tất cả các giá trị tôi muốn giữ:

values = list["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 "]

Sau đó, tôi đã tạo một hàm sẽ lặp qua từng mục trong chuỗi và nếu nó không có trong danh sách

print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
0, nó sẽ xóa [thay thế] nó khỏi chuỗi:

def remover[my_string = ""]:
  for item in my_string:
    if item not in values:
      my_string = my_string.replace[item, ""]
  return my_string

Ví dụ: mã sau:

print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]

Nên đầu ra:

'Hello World'

Chắc chắn đây không phải là cách tốt nhất để làm điều này nhưng với hoàn cảnh, đó là một cách nhanh chóng và dễ dàng để hoàn thành công việc.

Lưu ý: Bạn có thể thay thế các mục trong danh sách

print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
0 bằng cách thay đổi
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
2 thành
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
3.
you can replace the items that are in the
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
0 list by changing
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
2 to
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
3.

Lưu ý: Tôi không được phép sử dụng hằng số chuỗi vì gói

print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
4 phải được nhập để sử dụng chúng. I wasn't allowed to use string constants because the
print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
4 package has to be imported to use them.

Chúc may mắn.

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận 
    This is one of the way in which this task can be performed. In this, we compare the string for all elements being alphabets or space only.

    Python3

    Đôi khi, trong khi kiểm tra độ tin cậy của chuỗi là một phần chỉ chứa bảng chữ cái, một ngoại lệ của không gian phải được đề cập rõ ràng và trở thành một vấn đề. Điều này có thể xảy ra trong các miền liên quan đến dữ liệu. Hãy thảo luận về những cách nhất định trong đó nhiệm vụ này có thể được thực hiện.

    Phương thức số 1: Sử dụng tất cả [] + ISSPACE [] + isalpha [] & nbsp; Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Trong đó, chúng tôi so sánh chuỗi cho tất cả các yếu tố chỉ là bảng chữ cái hoặc không gian.

    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    5
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    6

    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    7
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    9

    'Hello World'
    
    0
    'Hello World'
    
    1
    'Hello World'
    
    2
    'Hello World'
    
    3
    'Hello World'
    
    4

    'Hello World'
    
    5
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    'Hello World'
    
    7
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    'Hello World'
    
    9
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    0
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    1
    'Hello World'
    
    1
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    3__

    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True

    'Hello World'
    
    0
    'Hello World'
    
    1
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    4
    'Hello World'
    
    3
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    6
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    7
     
    This problem can also be solved by employing regex to include only space and alphabets in a string.

    Python3

    Đôi khi, trong khi kiểm tra độ tin cậy của chuỗi là một phần chỉ chứa bảng chữ cái, một ngoại lệ của không gian phải được đề cập rõ ràng và trở thành một vấn đề. Điều này có thể xảy ra trong các miền liên quan đến dữ liệu. Hãy thảo luận về những cách nhất định trong đó nhiệm vụ này có thể được thực hiện.

    Phương thức số 1: Sử dụng tất cả [] + ISSPACE [] + isalpha [] & nbsp; Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Trong đó, chúng tôi so sánh chuỗi cho tất cả các yếu tố chỉ là bảng chữ cái hoặc không gian.

    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    5
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    6

    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    7
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    9

    'Hello World'
    
    0
    'Hello World'
    
    1
    'Hello World'
    
    2
    'Hello World'
    
    3
    'Hello World'
    
    4

    'Hello World'
    
    5
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    'Hello World'
    
    7
    print[remover["H!e£l$l%o^ W&o*r[l]d!:]"]]
    
    8
    'Hello World'
    
    9
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    0
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    1
    'Hello World'
    
    1
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    3__

    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True

    'Hello World'
    
    0
    'Hello World'
    
    1
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    4
    'Hello World'
    
    3
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    6
    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    7

    Đầu ra: & nbsp;O[n]

    Phương pháp số 1: Sử dụng Regex & NBSP; vấn đề này cũng có thể được giải quyết bằng cách sử dụng Regex để chỉ bao gồm không gian và bảng chữ cái trong một chuỗi.O[n]


    Tôi có một lời thú nhận để thực hiện: Tôi là một người gắn bó với tên tệp. Tôi hết lòng tin rằng tất cả các tên tệp và đường dẫn nên là

    'Temperature C'
    
    0 hoặc
    'Temperature C'
    
    1. Không gian, viết hoa và các nhân vật không phải là vô sinh khiến tôi phát điên.

    Nỗi ám ảnh của tôi xuất phát từ những năm tôi nhảy qua lại giữa Linux [lập trình, máy chủ], Windows [CAD] và MacOS [máy tính xách tay cá nhân], trong đó mỗi hệ thống có các tiêu chuẩn tệp thực tế khác nhau. Do đó, cuối cùng tôi đã hội tụ về tên tệp đơn giản và Draconia để đảm bảo dễ dàng lấy dữ liệu khi tôi cần tự động hóa.

    Bây giờ, tôi hiểu có những lúc mức độ cứng nhắc này không hoàn toàn có ý nghĩa. Một ví dụ là trong kỹ thuật cơ học khi làm việc với hệ thống PDM [và các bên liên quan không phát triển]. Thực tiễn phổ biến là có tên tệp của bạn là

    'Temperature C'
    
    2 [ví dụ:
    'Temperature C'
    
    3]. Có, có không gian, nhưng miễn là lược đồ được thực thi, cơ sở dữ liệu vẫn sẽ dễ dàng bị phân tích máy.

    Nếu chúng ta mở rộng dòng suy nghĩ này từ tên tệp sang một đường dẫn tổng quát hoặc vị trí tài nguyên của Hồi giáo [ví dụ: URL, tiêu đề cột dữ liệu, nhãn dữ liệu], các lược đồ nghiêm ngặt và nhất quán là nhập, như ma quỷ trong các chi tiết.

    Và các nhân vật không phải là người vô sinh là xấu xa. Chúng chỉ gây đau đầu cho tất cả mọi người.

    Vệ sinh tất cả các chuỗi

    Xác thực và vệ sinh chuỗi đảm bảo rằng một chuỗi đáp ứng một tập hợp các tiêu chí [xác thực] hoặc sửa đổi nó để phù hợp với lược đồ [vệ sinh]. Như đã thảo luận ở trên, có rất nhiều tình huống quan trọng trong đó các chuỗi đến [ví dụ: nhãn dữ liệu, đường dẫn, tên tệp] có thể không phù hợp với tiêu chuẩn và hoạt động bất ngờ. Như đã thảo luận trước đây trong bài phân tích dữ liệu nhiệt độ và độ ẩm, các bước

    'Temperature C'
    
    4 và
    'Temperature C'
    
    5 của quy trình làm việc ETL thường áp dụng một số việc làm sạch dữ liệu. Chạy các ký tự không phải là một bước đơn giản và hữu ích cho nhiều ứng dụng xử lý dữ liệu.

    Như đã thấy trong bài viết trước của chúng tôi, bộ ghi dữ liệu đã cố gắng để được ưa thích và sử dụng ký hiệu [ác] [

    'Temperature C'
    
    6] và dấu phần trăm [
    'Temperature C'
    
    7] cho các tiêu đề cột nhiệt độ và độ ẩm tương ứng. Thật không may, điều này không phải là hiếm, và trong khi Excel phân tích các chuỗi này một cách bình thường, chúng ta có thể luôn luôn đảm bảo cách các hệ thống hoặc chương trình khác nhau sẽ phản ứng. Ví dụ, trong latex, dấu hiệu phần trăm là nhân vật đặc biệt cho các bình luận, và do đó cần phải được thoát ra [
    'Temperature C'
    
    8] khác mà bạn sẽ có một ngày tồi tệ.

    Vì vậy, hãy để một cái nhìn về cách làm sạch các chuỗi hiệu quả trong Python. Cho một chuỗi xấu xí:

    ugly_string = "Temperature [°C]"
    

    Chúng tôi có ba lựa chọn: hai cách Pythonic và một cách quá mức cần thiết. Hãy cùng giả sử rằng chúng tôi muốn giữ các ký tự khoảng trắng.

    Làm sạch Pythonic: Danh sách hiểu biết

    Một cách tiếp cận không được tối ưu hóa, nhưng rõ ràng và dễ đọc là chỉ cần sử dụng danh sách hiểu để loại bỏ một chuỗi các ký tự không phải là đồngumeric. Trong Python, một đối tượng

    The original string is : geeksforgeeks is best for geeks
    Does String contain only space and alphabets : True
    6 là một loại trình tự, đó là lý do tại sao các phương thức hiểu danh sách hoạt động. Chúng tôi sẽ sử dụng
    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    0 tích hợp để kiểm tra các ký tự chữ và số và
    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    1 để kiểm tra khoảng trắng.

    # list comprehension that filters out bad characters
    clean_string = [s for s in ugly_string if s.isalnum[] or s.isspace[]]
    
    # rejoin intermediate list into a string
    clean_string = "".join[clean_string]
    
    clean_string
    

    'Temperature C'
    

    Làm sạch Pythonic: Bộ lọc

    Cách tiếp cận rõ ràng thứ hai là sử dụng hàm

    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    2 tích hợp để lọc ra các ký tự không tuân thủ. Đây là một chức năng thú vị mà hữu ích trong một loạt các kịch bản, đặc biệt là khi kết hợp với các chức năng Lambda.

    Hàm

    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    2 khá đơn giản: nó có một hàm trả về
    # list comprehension that filters out bad characters
    clean_string = [s for s in ugly_string if s.isalnum[] or s.isspace[]]
    
    # rejoin intermediate list into a string
    clean_string = "".join[clean_string]
    
    clean_string
    
    0 và một điều không thể điều chỉnh được. Đối với mỗi yếu tố của có thể lặp lại, hàm đã cho trả về
    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    5 hoặc
    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    6. Chỉ các yếu tố trả lại
    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    5 được giữ.

    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    

    'Temperature C'
    

    Làm sạch quá mức: Regex

    Cách tiếp cận cuối cùng của chúng tôi là sử dụng các biểu thức chính quy [regex]. Regex thực sự mạnh mẽ và có thể được sử dụng trong nhiều tình huống và trên tất cả các ngôn ngữ lập trình. Mặc dù nó có một đường cong học tập tương đối khó khăn, nhưng nó chắc chắn là thứ mà hầu hết các nhà phát triển và kỹ sư nên thử hiểu và làm quen.

    Tuy nhiên, theo ý kiến ​​khiêm tốn của tôi, tùy thuộc vào bối cảnh, nó quá mức cần thiết.

    Vấn đề với Regex là nó quá mạnh mẽ và quá linh hoạt. Các phương pháp pythonic được hiển thị ở trên rất dễ đọc, dễ gỡ lỗi và dễ hiểu phạm vi của chúng. Regex yêu cầu nhà phát triển kiểm tra biểu thức [trừ khi bạn là một loại phù thủy Regex] và kiểm tra các trường hợp các góc. Mặc dù ví dụ bài đăng này khá tầm thường, nhưng không phải tất cả các kịch bản sẽ được tha thứ.

    Thành phần cốt lõi của phương pháp này là mẫu Regex. Trong ví dụ này, chúng tôi sẽ sử dụng

    # use filter to keep just alphanumeric characters
    filter[str.isalnum, ugly_string]
    
    # or use filter to return alphanumeric and whitespace
    clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
    
    # filter returns a generator, so we need to re-join the string
    clean_string = "".join[clean_string]
    
    clean_string
    
    8. Như được giải thích bởi một trang web kiểm tra regex, mẫu này bao gồm các yếu tố sau:

    • # use filter to keep just alphanumeric characters
      filter[str.isalnum, ugly_string]
      
      # or use filter to return alphanumeric and whitespace
      clean_string = filter[lambda x: x.isalnum[] or x.isspace[], ugly_string]
      
      # filter returns a generator, so we need to re-join the string
      clean_string = "".join[clean_string]
      
      clean_string
      
      9: tập hợp được phủ định phù hợp với bất kỳ ký tự nào không trong tập hợp
    • def remover[my_string = ""]:
        for item in my_string:
          if item not in values:
            my_string = my_string.replace[item, ""]
        return my_string
      
      00: khớp các ký tự số trong phạm vi đã cho
    • def remover[my_string = ""]:
        for item in my_string:
          if item not in values:
            my_string = my_string.replace[item, ""]
        return my_string
      
      01: khớp các ký tự chữ cái viết thường trong phạm vi đã cho
    • def remover[my_string = ""]:
        for item in my_string:
          if item not in values:
            my_string = my_string.replace[item, ""]
        return my_string
      
      02: Phù hợp với các ký tự chữ cái viết hoa trong phạm vi đã cho
    • def remover[my_string = ""]:
        for item in my_string:
          if item not in values:
            my_string = my_string.replace[item, ""]
        return my_string
      
      03: khớp với bất kỳ ký tự khoảng trắng nào
    • 'Hello World'
      
      3: khớp với một hoặc nhiều phần tử trước đó [tức là tập hợp bị phủ định]

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    1

    'Temperature C'
    

    Màn biểu diễn

    Nhưng Nicholas! Tôi không quan tâm đến khả năng đọc; Tôi chỉ quan tâm đến hiệu suất tối ưu hóa!

    Chà, hãy để một cái nhìn. Như được hiển thị dưới đây, tôi đã hợp nhất ba cách tiếp cận thành các chức năng nhỏ để kiểm tra hiệu suất. Tôi cũng sẽ sử dụng một chuỗi Lorem Ipsum [Lipsum] rất dài để kiểm tra hiệu suất, để không có kết quả sai lệch từ văn bản ngắn. Các bộ lọc sẽ tước thời gian, dấu phẩy và dấu câu khác từ văn bản Lipsum. Chuỗi này nên dài hơn bất kỳ URL, tiêu đề cột dữ liệu, tên tệp hoặc nhãn dữ liệu khác sẽ được vệ sinh trong bối cảnh kỹ thuật.

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    3

    Sử dụng lệnh Jupyter Magic tích hợp

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    05, chúng ta có thể xác thực hiệu suất của từng phương pháp:

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    4

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    5

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    6

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    7

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    8

    def remover[my_string = ""]:
      for item in my_string:
        if item not in values:
          my_string = my_string.replace[item, ""]
      return my_string
    
    9

    Vì vậy, trong khi có vẻ như phương pháp Regex về mặt kỹ thuật là người chiến thắng, các phương pháp Pythonic đủ gần. Khả năng đọc là quan trọng hơn [rất] tối ưu hóa hiệu suất nhỏ.

    Không gian có phải là một con trăn chữ và số không?

    Phương thức chuỗi python isalnum [] Phương thức isalnum [] trả về true nếu tất cả các ký tự là chữ và số, có nghĩa là chữ cái bảng chữ cái [a-z] và số [0-9]. Ví dụ về các ký tự không phải là chữ và số: [không gian]!not alphanumeric: [space]!

    Không gian có tính là chữ và số không?

    Theo định nghĩa, các ký tự chữ và số chỉ bao gồm các chữ cái A đến Z và các chữ số 0 đến 9. Không gian và dấu gạch dưới thường được coi là ký tự dấu câu, vì vậy không, chúng không nên được phép.no, they shouldn't be allowed.

    Làm cách nào để kiểm tra xem một chuỗi có chứa một khoảng trống trong Python không?

    Phương thức Python String ISSPACE [] trả về True True nếu tất cả các ký tự trong chuỗi là ký tự khoảng trắng, nếu không, nó sẽ trả về Sai False.Hàm này được sử dụng để kiểm tra xem đối số có chứa tất cả các ký tự khoảng trắng không, chẳng hạn như: '' - không gian. returns “True” if all characters in the string are whitespace characters, Otherwise, It returns “False”. This function is used to check if the argument contains all whitespace characters, such as: ' ' – Space.

    Làm cách nào để kiểm tra xem một chuỗi là Python chữ và số?

    Chuỗi python isalnum [] hàm trả về true nếu nó chỉ được làm bằng các ký tự chữ và số.Một nhân vật là chữ và số nếu đó là alpha hoặc một số.Nếu chuỗi trống, thì isalnum [] trả về false.. A character is alphanumeric if it's either an alpha or a number. If the string is empty, then isalnum[] returns False .

    Bài Viết Liên Quan

    Chủ Đề