Hướng dẫn special characters in python dictionary key - ký tự đặc biệt trong khóa từ điển python

Tôi đang làm việc trên tập lệnh nhỏ này: về cơ bản, nó đang ánh xạ các yếu tố danh sách (với các ký tự đặc biệt trong đó) để tạo một từ điển.

#!/usr/bin/env python
#-*- coding: latin-1 -*-

ln1 = '?0>9<8~7|65"4:3}2{1+_)'
ln2 = "(*&^%$£@!/`'\][=-#¢"

refStr = ln2+ln1

keyDict = {}
for i in range(0,len(refStr)):
    keyDict[refStr[i]] = i


print "-" * 32
print "Originl: ",refStr
print "KeyDict: ", keyDict

# added just to test a few special characters
tsChr = ['£','%','\\','¢']

for k in tsChr:
    if k in keyDict:
        print k, "\t", keyDict[k]
    else: print k, "\t", "not in the dic."

Nó trả về kết quả như thế này:

Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}

Tất cả đều tốt, ngoại trừ các ký tự £,

Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
0 và
Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
1 đang chuyển đổi thành
Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
2,
Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
3 và
Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
4. Có ai biết tại sao in ________ 15/________ 16 chỉ là tốt nhưng từ điển thì không. Làm thế nào tôi có thể sửa lỗi này? Bất kỳ trợ giúp đánh giá cao. Chúc mừng !!


Cập nhật 1

Tôi đã thêm các ký tự đặc biệt bổ sung - ________ 17 & nbsp; và

Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
8 và sau đó đây là những gì tôi nhận được theo đề xuất của @Duncan:

! 9
? 7
? 20
% 4
$ 5
....
....
8 26
: 34
= 16
< 25
? 21
> 23
@ 8
? 19
....
....

Lưu ý rằng các yếu tố thứ 7, 19 và 20, hoàn toàn không in đúng. Phần tử thứ 21 là ký tự

Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
9 thực tế. Chúc mừng !!


Cập nhật 2

Chỉ cần thêm vòng lặp này vào bài viết gốc của tôi để thực sự kiểm tra mục đích của tôi:

tsChr = ['£','%','\\','¢']
for k in tsChr:
    if k in keyDict:
        print k, "\t", keyDict[k]
    else: print k, "\t", "not in the dic."

Và đây là những gì tôi nhận được như kết quả:

£   not in the dic.
%   4
\   13
¢   not in the dic.

Whist chạy kịch bản, nó nghĩ rằng £

Originl:  (*&^%$£@!/`'\][=-#¢?0>9<8~7|65"4:3}2{1+_)
KeyDict:  {'!': 9, '\xa3': 7, '\xa2': 20, '%': 4, '$': 5, "'": 12, '&': 2, ')': 42, '(': 0, '+': 40, '*': 1, '-': 17, '/': 10, '1': 39, '0': 22, '3': 35, '2': 37, '5': 31, '4': 33, '7': 28, '6': 30, '9': 24, '8': 26, ':': 34, '=': 16, '<': 25, '?': 21, '>': 23, '@': 8, '\xc2': 19, '#': 18, '"': 32, '[': 15, ']': 14, '\\': 13, '_': 41, '^': 3, '`': 11, '{': 38, '}': 36, '|': 29, '~': 27}
8 thực sự không có trong từ điển - và đó là vấn đề của tôi. Có ai biết cách khắc phục điều đó hoặc tôi đang làm gì sai không?

Cuối cùng, tôi sẽ kiểm tra (các) ký tự từ một tệp (hoặc một dòng văn bản) trong từ điển để xem nó có tồn tại và có khả năng có ký tự như

! 9
? 7
? 20
% 4
$ 5
....
....
8 26
: 34
= 16
< 25
? 21
> 23
@ 8
? 19
....
....
2 hoặc £, v.v. Chúc mừng !!

Chỉnh sửa: Nó đã được giải quyết. Hóa ra tôi đã gặp một lỗi trong tên từ điển của mình, đó là cùng một tên của một Dict khác. Đó là lý do tại sao nó đã ném một lỗi chính, vì khóa không tồn tại.

Tôi muốn sử dụng một từ điển để tra cứu một mã khóa trong một chuỗi, nhưng nó không thành công trên các ký tự đặc biệt.

Tôi muốn sử dụng một dict, vì tốc độ tra cứu, nhưng tôi nghĩ rằng tôi thực sự có thể phải dùng đến danh sách cho các nhân vật đặc biệt.

Ví dụ:

dc = {"1":"ONE", "!":"SHIFTONE", "m":"M", "M":"SHIFTM"}
s = "1m!"

for i in s:
    if i in dc.keys():
        pass

Hầu như bất kỳ loại giá trị nào cũng có thể được sử dụng làm khóa từ điển trong Python. Bạn thậm chí có thể sử dụng các đối tượng tích hợp như các loại và chức năng. Tuy nhiên, có một vài hạn chế rằng các khóa từ điển phải tuân thủ.

Đầu tiên, một khóa nhất định chỉ có thể xuất hiện trong một từ điển một lần. Các khóa trùng lặp không được phép. Một từ điển ánh xạ từng khóa theo giá trị tương ứng, do đó, nó không có ý nghĩa gì khi ánh xạ một khóa cụ thể hơn một lần. Nếu bạn chỉ định khóa lần thứ hai trong quá trình tạo từ điển ban đầu, thì lần xuất hiện thứ hai sẽ ghi đè lên thứ nhất.

Thứ hai, một khóa từ điển phải thuộc loại bất biến. Ví dụ: bạn có thể sử dụng số nguyên, phao, chuỗi hoặc boolean làm khóa từ điển. Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển, bởi vì danh sách và từ điển đều có thể thay đổi. Mặt khác, các giá trị có thể là bất kỳ loại nào và có thể được sử dụng nhiều lần.

Xóa các ký tự đặc biệt khỏi Python từ điển với các ví dụ mã

Trong bài viết này, chúng ta sẽ thấy cách giải quyết loại bỏ các ký tự đặc biệt khỏi Python từ điển bằng các ví dụ.

clean_dict = {str(key).strip(): re.sub(r"[^a-zA-Z0-9 ]", "", str(item)) for key, item in response.items()}
print(clean_dict)

Giải pháp cho cùng một vấn đề, loại bỏ các ký tự đặc biệt khỏi Python từ điển, cũng có thể được tìm thấy trong một phương pháp khác, sẽ được thảo luận thêm với một số ví dụ mã.

>>> string = "Special $#! characters   spaces 888323"
>>> ''.join(e for e in string if e.isalnum())
'Specialcharactersspaces888323'
import re
my_list= ["[email protected]", "two#", "thre%e"]
print [re.sub('[^a-zA-Z0-9]+', '', _) for _ in my_list]

Sử dụng nhiều ví dụ trong thế giới thực, chúng tôi đã trình diễn cách sửa lỗi xóa các ký tự đặc biệt khỏi lỗi python từ điển.

Làm thế nào để bạn loại bỏ các ký tự đặc biệt trong Python?

Sử dụng 're. sub () '

  • Mùi [^a-za-z0
  • Tất cả các ký tự được khớp sẽ được thay thế bằng một chuỗi trống.
  • Tất cả các ký tự ngoại trừ bảng chữ cái và số được xóa.

Làm cách nào để loại bỏ các ký tự đặc biệt khỏi chuỗi trong Python NLP?

Loại bỏ các ký tự đặc biệt bao gồm các chuỗi sử dụng python isalnum. Python có một phương thức chuỗi đặc biệt,. isalnum (), trả về true nếu chuỗi là một ký tự alpha-numeric và trả về sai nếu không. Chúng ta có thể sử dụng điều này, để lặp qua một chuỗi và nối vào một chuỗi mới, chỉ

Làm cách nào để loại bỏ các ký tự đặc biệt khỏi chuỗi?

Ví dụ về việc loại bỏ các ký tự đặc biệt bằng phương thức thay thế ()

  • Loại bỏ lớp công khai EXPECIALCHARACTERExample1.
  • {
  • Công khai tĩnh void chính (String args [])
  • {
  • Công khai tĩnh void chính (String args [])
  • str = str.replaceall ("[^a-za-z0-9]", "");
  • System.out.println(str);
  • }

Bạn có thể loại bỏ các mục khỏi một python từ điển không?

Bạn có thể sử dụng các phương thức sau để loại bỏ các mục khỏi từ điển trong Python: từ khóa DEL. Phương thức rõ ràng (). Phương thức pop ().

Làm cách nào để loại bỏ các ký tự đặc biệt khỏi một chuỗi trong gấu trúc?

Thêm df = df. ASTYPE (float) sau khi thay thế và bạn đã có nó. Tôi sẽ bỏ qua và chỉ làm df = df. thay thế ('\*', '', regex = true).

Làm thế nào để bạn loại bỏ các ký tự không bảng chữ cái trong Python?

Xóa các ký tự không phải là vô hiệu khỏi chuỗi Python

  • Sử dụng phương thức isAlNum () để loại bỏ tất cả các ký tự không phải là đồng bằng trong chuỗi python.
  • Sử dụng hàm Filter () để loại bỏ tất cả các ký tự không phải là số đồng âm trong chuỗi Python.
  • Sử dụng các biểu thức chính quy để loại bỏ tất cả các ký tự không phải là số đồngumeric trong chuỗi Python.

Làm cách nào để loại bỏ nhiều ký tự khỏi chuỗi trong Python?

Để loại bỏ nhiều ký tự khỏi chuỗi, chúng ta có thể dễ dàng sử dụng hàm str. Thay thế và chuyển một tham số nhiều ký tự. Lớp chuỗi (STR) cung cấp một phương thức để thay thế (old_str, new_str) để thay thế các chuỗi con trong một chuỗi. Nó thay thế tất cả các yếu tố của chuỗi phụ cũ bằng chuỗi con mới.07-sept-2021

Làm cách nào để loại bỏ các ký tự xấu khỏi chuỗi trong Python?

Người ta có thể sử dụng str. thay thế () bên trong một vòng lặp để kiểm tra BAD_CHAR và sau đó thay thế nó bằng chuỗi trống do đó loại bỏ nó.15-sept-2022

Làm cách nào để loại bỏ tất cả các ký tự khỏi một chuỗi trong Python?

Python loại bỏ ký tự khỏi một chuỗi - cách xóa các ký tự khỏi chuỗi. Trong Python, bạn có thể sử dụng các phương thức thay thế () và dịch () để chỉ định các ký tự nào bạn muốn xóa khỏi chuỗi và trả về kết quả chuỗi được sửa đổi mới.07-mar-2022

Làm cách nào để loại bỏ tất cả các ký tự ngoại trừ các số trong Python?

Cú pháp sử dụng phương pháp này trong Python 3 là x. dịch (str. maketrans ('', '', chuỗi.

  • Vì vậy, [a-z] có nghĩa là tất cả các chữ cái viết thường hoặc cho chữ hoa chúng ta phải [a-z]?
  • [A-Z] sẽ hoạt động cho cả hai cơ sở dưới và dưới

Làm thế nào để bạn đại diện cho các nhân vật đặc biệt trong Python?

Trong các chuỗi Python, dấu gạch chéo ngược "\" là một nhân vật đặc biệt, còn được gọi là nhân vật "Escape". Nó được sử dụng để thể hiện các ký tự khoảng trắng nhất định: "\ t" là một tab, "\ n" là một dòng mới và "\ r" là một sự trở lại vận chuyển. Ngược lại, tiền tố một ký tự đặc biệt với "\" biến nó thành một ký tự thông thường.the backslash "\" is a special character, also called the "escape" character. It is used in representing certain whitespace characters: "\t" is a tab, "\n" is a newline, and "\r" is a carriage return. Conversely, prefixing a special character with "\" turns it into an ordinary character.

Các nhân vật của từ điển trong Python là gì?

3 đặc điểm chính của từ điển là: 1.Từ điển không được đặt hàng: Các cặp yếu tố từ điển Các cặp giá trị khóa không theo thứ tự.2. Các khóa từ điển nhạy cảm: cùng một tên khóa nhưng với trường hợp khác nhau được coi là các khóa khác nhau trong từ điển Python.Dictionaries are Unordered : The dictionary elements key-value pairs are not in ordered form. 2. Dictionary Keys are Case Sensitive : The same key name but with different case are treated as different keys in Python dictionaries.

Python có cho phép các ký tự đặc biệt không?

Python3.Một định danh trong Python không thể sử dụng bất kỳ biểu tượng đặc biệt nào như!, @, #, $, %, V.v.cannot use any special symbols like !, @, #, $, % etc.

{} Trong Python là gì?

"Niềng răng xoăn" được sử dụng trong Python để xác định từ điển.Từ điển là một cấu trúc dữ liệu ánh xạ một giá trị này sang giá trị khác - giống như cách một từ điển tiếng Anh ánh xạ một từ theo định nghĩa của nó.used in Python to define a dictionary. A dictionary is a data structure that maps one value to another - kind of like how an English dictionary maps a word to its definition.