🚀Tóm tắt. Tách chuỗi đã cho bằng hàm
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World0 và sau đó giải nén các mục của danh sách được trả về bởi phương thức tách thành các biến khác nhau
Ví dụ tối thiểu
txt = 'one,two,three' x,y,z = txt.split[','] print[x,y,z] # one two three
Xây dựng vấn đề
📝Vấn đề. Cho một chuỗi. Làm thế nào bạn sẽ tách chuỗi và sau đó lưu trữ các chuỗi đã tách thành các biến khác nhau?
ví dụ 1
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World
Trong vấn đề trên, chuỗi đã cho là đơn giản và rõ ràng là cần có hai biến để lưu trữ các chuỗi đã phân tách. Do đó, bạn cần tạo hai biến để lưu trữ hai chuỗi con đã tách
ví dụ 2
# Given String text = 'KBDNM-R8CD9-RK366-WFM3X-C7GXK' # Expected Output: key_1 = KBDNM key_2 = R8CD9 key_3 = RK366 key_4 = WFM3X key_5 = C7GXK
Trong bài toán trên, dấu phân cách dùng để tách chuỗi là “-“. Số lượng biến ở đây rất khó tìm [giả sử nếu đó là một chuỗi thậm chí còn dài hơn. ]. Làm thế nào bạn sẽ tách chuỗi trong trường hợp như vậy và lưu trữ chúng vào các biến khác nhau?
cảnh 1
Hãy xem giải pháp cho ví dụ 1
Giải pháp. Vì số lượng biến là cố định, tôi. e. , chúng tôi có một ý tưởng hợp lý về số lượng biến cần thiết, bạn phải sử dụng hàm
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World0 trên chuỗi đã cho để chia chuỗi đã cho thành hai mục và lưu trữ chúng trong danh sách. Giải nén các giá trị này thành hai biến sao cho mục đầu tiên sẽ được lưu trữ trong một biến trong khi mục thứ hai sẽ được lưu trữ trong một biến khác
Mã số
# Given String text = 'Hello World' x, y = text.split[] print[x] print[y] # OUTPUT # Hello # World
Cái giếng. Điều đó thật dễ dàng. Hãy đi sâu vào vấn đề phức tạp hơn
kịch bản 2
✨Cách 1. Tách và tạo từ điển
Tiếp cận. Ý tưởng ở đây là phân tách danh sách bằng cách sử dụng “-” làm dấu phân cách và sau đó tìm độ dài của danh sách kết quả được trả về bởi hàm tách. Sau đó, sử dụng độ dài này để tạo một danh sách khác chứa tất cả các tên biến dưới dạng các mục bên trong nó. Điều này có thể được thực hiện với một vòng lặp for đơn giản. Do đó, bạn sẽ có hai danh sách một cách hiệu quả - một danh sách lưu trữ các chuỗi phân tách và một danh sách khác lưu trữ các tên biến sẽ lưu trữ các chuỗi phân tách
Sau đó, bạn có thể tạo một từ điển trong hai danh sách sao cho các khóa trong từ điển này sẽ là các mục của danh sách chứa tên biến và các giá trị trong từ điển này sẽ là các mục của danh sách chứa các chuỗi phân tách
Mã số
# Given String text = 'KBDNM-R8CD9-RK366-WFM3X-C7GXK' # splitting the string using - as a separator res = text.split['-'] # Naming and storing variables and values name = [] for i in range[1, len[res]+1]: name.append['key_' +str[i]] d = dict[zip[name, res]] for key, value in d.items[]: print[key, "=", value]
đầu ra
key_1 = KBDNM key_2 = R8CD9 key_3 = RK366 key_4 = WFM3X key_5 = C7GXK
🌐Nên đọc. Cách chuyển đổi hai danh sách thành từ điển
✨Cách 2. Sử dụng __dict__
Hầu như tất cả các mô-đun đều có một thuộc tính đặc biệt được gọi là
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World2, đây là một từ điển chứa bảng ký hiệu của mô-đun. Nó thực chất là một từ điển hoặc một đối tượng ánh xạ được sử dụng để lưu trữ các thuộc tính [có thể ghi] của một đối tượng
Vì vậy, bạn có thể tạo một lớp và sau đó tiếp tục tạo một thể hiện của lớp này có thể được sử dụng để đặt các thuộc tính khác nhau. Sau khi bạn tách chuỗi đã cho, đồng thời tạo danh sách chứa tên biến [như đã thực hiện trong giải pháp trước], bạn có thể tiếp tục và nén hai danh sách và sử dụng phương thức
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World3 để gán biến và giá trị của chúng. . Một lần, bạn đã thiết lập các thuộc tính [i. e. tên biến và giá trị của chúng] và gắn chúng vào đối tượng, bạn có thể truy cập chúng bằng cách sử dụng
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World2 tích hợp dưới dạng
# Given String text = 'Hello World' # Expected Output: Number of split strings: 2 x = Hello y = World5
Mã số
# Given String text = 'KBDNM-R8CD9-RK366-WFM3X-C7GXK' # splitting the string using - as a separator res = text.split['-'] # length of split string list x = len[res] # variable creation and value assignment name = [] for i in range[1, x + 1]: name.append['key_' + str[i]] class Record[]: pass r = Record[] for name, value in zip[name, res]: setattr[r, name, value] for key, value in r.__dict__.items[]: print[key, "=", value]
đầu ra
key_1 = KBDNM key_2 = R8CD9 key_3 = RK366 key_4 = WFM3X key_5 = C7GXK
✨Cách 3. Sử dụng toàn cầu
Hàm globals[] trả về một từ điển chứa tất cả các biến trong phạm vi toàn cầu với tên biến là khóa và giá trị được gán cho biến sẽ là giá trị trong từ điển. Bạn có thể tham khảo từ điển này và thêm các biến mới theo tên chuỗi [globals[][‘a’] = ‘b’ đặt biến a bằng “b”]
Vì toàn cầu trả về một từ điển chứa tất cả các biến trong phạm vi toàn cầu, một cách giải quyết khác để chỉ nhận các biến mà chúng ta đã chỉ định là trích xuất các cặp khóa-giá trị “N” cuối cùng từ từ điển này trong đó “N” là độ dài của danh sách chuỗi phân tách
Mã số
# Given String text = 'KBDNM-R8CD9-RK366-WFM3X-C7GXK' # splitting the string using - as a separator res = text.split['-'] # length of split string list x = len[res] name = [] for i in range[1, x + 1]: name.append['key_' + str[i]] for idx, value in enumerate[res]: globals[]["key_" + str[idx + 1]] = value x = 0 for i in reversed[globals[]]: print[i, "=", globals[][i]] x = x+1 if x == 5: break
đầu ra
key_5 = C7GXK key_4 = WFM3X key_3 = RK366 key_2 = R8CD9 key_1 = KBDNM
⚠️Chú ý. Giải pháp này không được khuyến nghị trừ khi đây là tùy chọn duy nhất còn lại. Tôi đã đề cập đến điều này chỉ vì nó giải quyết được mục đích. Tuy nhiên, đó chắc chắn không phải là cách tốt nhất để tiếp cận vấn đề đã cho
Phần kết luận
Tôi hy vọng các giải pháp được đề cập trong bài viết này đã giúp bạn. Hãy đăng ký và theo dõi các bài viết và giải pháp thú vị hơn trong tương lai. Mã hóa vui vẻ. 🙂
Shubham Sayon
Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking