Hướng dẫn how do you get the numeric position of the alphabet in python? - làm thế nào để bạn có được vị trí số của bảng chữ cái trong python?

Tôi chắc chắn 90% có một chức năng tích hợp trong việc này.

Tôi cần tìm vị trí của một nhân vật trong bảng chữ cái. Vì vậy, ký tự "B" là vị trí 1 (đếm từ 0), v.v ... Có ai biết chức năng được gọi là gì không?

Cảm ơn trước!

Chỉnh sửa: Điều tôi đang cố gắng làm là gửi tất cả các ký tự x số lượng "bước" trở lại trong đặt cược alpha, vì vậy nếu tôi có một chuỗi với "hi" thì đó sẽ là "gh" nếu tôi gửi lại một bước . Có thể có một cách tốt hơn để làm điều đó, bất kỳ lời khuyên?

Hướng dẫn how do you get the numeric position of the alphabet in python? - làm thế nào để bạn có được vị trí số của bảng chữ cái trong python?

Khi được hỏi ngày 8 tháng 5 năm 2011 lúc 11:29May 8, 2011 at 11:29

0

Nó được gọi là index. Ví dụ:

>>> import string
>>> string.lowercase.index('b')
1
>>> 

Lưu ý: Trong Python 3, string.lowercase đã được đổi tên thành

def char_position(letter):
    return ord(letter) - 97

def pos_to_char(pos):
    return chr(pos + 97)
0.

Alex Ryan

2.2512 huy hiệu vàng16 Huy hiệu bạc14 Huy hiệu đồng2 gold badges16 silver badges14 bronze badges

Đã trả lời ngày 8 tháng 5 năm 2011 lúc 11:31May 8, 2011 at 11:31

SENTHIL KUMANSENTENTHIL KUMARANSenthil Kumaran

52.5K14 Huy hiệu vàng90 Huy hiệu bạc127 Huy hiệu đồng14 gold badges90 silver badges127 bronze badges

11

Mà không cần nhập khẩu

def char_position(letter):
    return ord(letter) - 97

def pos_to_char(pos):
    return chr(pos + 97)

Đã trả lời ngày 8 tháng 5 năm 2011 lúc 12:29May 8, 2011 at 12:29

Jakob Bowyerjakob BowyerJakob Bowyer

32,7K8 Huy hiệu vàng75 Huy hiệu bạc90 Huy hiệu Đồng8 gold badges75 silver badges90 bronze badges

1

Bạn có thể sử dụng ord () để có được vị trí ASCII của một nhân vật và chr () để chuyển đổi vị trí ASCII thành một ký tự.

Chỉnh sửa: Cập nhật để bọc bảng chữ cái để A-1 Bản đồ thành bản đồ Z và Z+1

Ví dụ:

my_string  = "zebra"
difference = -1
new_string = ''.join((chr(97+(ord(letter)-97+difference) % 26) for letter in my_string))

Điều này sẽ tạo ra một chuỗi với tất cả các ký tự đã di chuyển một không gian ngược trong bảng chữ cái ('ydaqz'). Nó sẽ chỉ hoạt động cho các từ viết thường.

Đã trả lời ngày 8 tháng 5 năm 2011 lúc 11:53May 8, 2011 at 11:53

4

# define an alphabet
alfa = "abcdefghijklmnopqrstuvwxyz"

# define reverse lookup dict
rdict = dict([ (x[1],x[0]) for x in enumerate(alfa) ])

print alfa[1] # should print b

print rdict["b"] # should print 1

RDICT là một từ điển được tạo ra bằng cách bước qua bảng chữ cái, một ký tự tại một thời điểm. Hàm liệt kê trả về một tuple với chỉ mục danh sách và ký tự. Chúng tôi đảo ngược thứ tự bằng cách tạo một tuple mới với mã này:

def char_position(letter):
    return ord(letter) - 97

def pos_to_char(pos):
    return chr(pos + 97)
1 và sau đó biến danh sách các bộ dữ liệu thành một từ điển. Vì từ điển là cấu trúc dữ liệu băm (khóa, giá trị), giờ đây chúng ta có thể tra cứu chỉ số của bất kỳ ký tự bảng chữ cái nào.

Tuy nhiên, đó không phải là điều bạn muốn giải quyết vấn đề của mình và nếu đây là một nhiệm vụ của lớp, bạn có thể sẽ nhận được 0 cho đạo văn nếu bạn gửi nó. Để mã hóa các chuỗi, thứ nhất tạo bảng chữ cái thứ hai được tổ chức sao cho alfa2 [n] là dạng được mã hóa của alfa [n]. Trong ví dụ của bạn, bảng chữ cái thứ hai sẽ được thay đổi bởi hai ký tự nhưng bạn cũng có thể xáo trộn ngẫu nhiên các ký tự hoặc sử dụng một số mẫu khác để đặt hàng chúng. Tất cả những điều này sẽ tiếp tục làm việc với các bảng chữ cái khác như Hy Lạp, Cyrillic, v.v.

Đã trả lời ngày 9 tháng 5 năm 2011 lúc 1:15May 9, 2011 at 1:15

Michael Dillonmichael DillonMichael Dillon

31.5K5 Huy hiệu vàng69 Huy hiệu bạc105 Huy hiệu Đồng5 gold badges69 silver badges105 bronze badges

Tôi chỉ mới bắt đầu học Python, vì vậy tôi không biết điều này hiệu quả như thế nào so với các phương pháp khác, nhưng nó hoạt động. Ngoài ra, không quan trọng liệu văn bản là chữ hoa, chữ thường hay nếu có bất kỳ dấu câu nào, v.v.

Nếu bạn muốn thay đổi tất cả các chữ cái:

from string import maketrans

textin = "abcdefghijklmnopqrstuvwxyz"
textout = "cdefghijklmnopqrstuvwxyzab"
texttrans = maketrans(textin, textout)

text = "qcc, gr umpiq"

print text.translate(texttrans)

Cũng hoạt động để thay đổi một số ký tự:

from string import maketrans

textin = "81972"
textout = "Seios"
texttrans = maketrans(textin, textout)

text = "811, 9t w7rk2"

print text.translate(texttrans)

Đã trả lời ngày 7 tháng 11 năm 2016 lúc 14:21Nov 7, 2016 at 14:21

Đây là một phương pháp bắt tất cả các phương pháp có thể hữu ích cho ai đó ...

def alphabet(arg, return_lower=True):

    """
        Indexing the english alphabet consisting of 26 letters. 
        Note: zero indexed

            example usage:

                alphabet('a')
                >> 0

                alphabet(25, return_lower=False)
                >> 'Z'

        :param arg: Either type int or type chr specifying the \
                    index of desired letter or ther letter at \
                    the desired index respectivley.
        :param return_lower: If index is passes, returns letter \
                         with corresponding case. Default is \
                         set to True (lower case returned). 
        :returns: integer representing index of passed character \
                    or character at passed index.
    """

    arg = str(arg)
    assert arg.isdigit() or arg.isalpha()

    if arg.isdigit():
        if return_lower:
            return chr(int(arg) + 97).lower()  
        return chr(int(arg) + 97).upper()

    return ord(arg.lower()) - 97

Đã trả lời ngày 1 tháng 12 năm 2018 lúc 5:40Dec 1, 2018 at 5:40

Hướng dẫn how do you get the numeric position of the alphabet in python? - làm thế nào để bạn có được vị trí số của bảng chữ cái trong python?

LJ Brownlj BrownLJ Brown

591 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

Tương đương với chức năng cột trong excel

def position(word):
    if len(word)>1:
        pos = 0
        for idx, letter in enumerate(word[::-1]):
            pos += (position(letter)+(1 if idx!=0 else 0))*26**(idx)
        return pos
    return ord(word.lower()) - 97


print(position("A")) --> 0
print(position("AA")) --> 26
print(position("AZ")) --> 51

Đã trả lời ngày 1 tháng 5 lúc 11:40May 1 at 11:40

1

Làm thế nào để bạn tìm thấy vị trí số của bảng chữ cái?

Mỗi chữ cái có một giá trị ASCII có thể được biểu diễn dưới dạng nhị phân.Thực hiện bitwise và của giá trị này với số 31 sẽ đưa ra vị trí của chữ cái trong bảng chữ cái.Performing the bitwise and of this value with the number 31 will give the letter's position in the alphabets.

Làm thế nào để bạn có được số vị trí của một chuỗi trong Python?

Phương pháp 1: Lấy vị trí của một ký tự trong python bằng phương thức rfind () python chuỗi rfind () trả về chỉ số cao nhất của chuỗi con nếu được tìm thấy trong chuỗi đã cho.Nếu không tìm thấy thì nó sẽ trả về -1.rfind() Python String rfind() method returns the highest index of the substring if found in the given string. If not found then it returns -1.

Làm thế nào để bạn có được vị trí của một nhân vật trong danh sách Python?

Để tìm chỉ mục của một phần tử danh sách trong Python, hãy sử dụng phương thức Index () tích hợp.Để tìm chỉ mục của một ký tự trong một chuỗi, hãy sử dụng phương thức index () trên chuỗi.Đây là câu trả lời nhanh chóng.use the built-in index() method. To find the index of a character in a string, use the index() method on the string. This is the quick answer.

Làm thế nào để bạn in số bảng chữ cái trong Python?

Phương pháp số 3: Sử dụng hàm ord () và chr () hàm python ord () chuyển đổi một ký tự thành một số nguyên đại diện cho mã unicode của ký tự.Tương tự, hàm chr () chuyển đổi một ký tự mã unicode thành chuỗi tương ứng.Using ord() and chr() functions The Python ord() function converts a character into an integer that represents the Unicode code of the character. Similarly, the chr() function converts a Unicode code character into the corresponding string.