首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何递增char?

如何递增char?
EN

Stack Overflow用户
提问于 2010-01-29 02:28:21
回答 7查看 140.2K关注 0票数 110

我是Python的新手,来自Java和C语言,我如何增加一个字符?在Java或C中,字符和整数实际上是可以互换的,在某些循环中,能够执行增量字符和按字符索引数组对我来说非常有用。

我如何在Python中做到这一点?没有传统的for(;;)循环已经够糟糕的了--有没有办法在不重新考虑我的整个策略的情况下实现我想要的目标?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-01-29 02:28:51

在Python2.x中,只需使用ordchr函数:

代码语言:javascript
复制
>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>> 

Python3.x使这项工作更有条理、更有趣,因为它明确区分了字节和unicode。默认情况下,"string“是unicode,所以上面的方法是有效的(ord接收Unicode字符,chr生成它们)。

但是如果你对字节感兴趣(比如处理一些二进制数据流),事情就更简单了:

代码语言:javascript
复制
>>> bstr = bytes('abc', 'utf-8')
>>> bstr
b'abc'
>>> bstr[0]
97
>>> bytes([97, 98, 99])
b'abc'
>>> bytes([bstr[0] + 1, 98, 99])
b'bbc'
票数 185
EN

Stack Overflow用户

发布于 2010-01-29 02:38:51

“没有传统的for(;;)循环已经够糟糕的了”??什么?

你想要做的是

代码语言:javascript
复制
import string
for c in string.lowercase:
    ...do something with c...

或者,您可能正在使用string.uppercasestring.letters

Python没有for(;;),因为通常有更好的方法来实现它。它也没有字符数学,因为它也不是必需的。

票数 15
EN

Stack Overflow用户

发布于 2017-05-07 23:01:09

我来自PHP,在那里你可以增加char (A到B,Z到AA,AA到AB等等)。使用++操作符。我用Python做了一个简单的函数来做同样的事情。您还可以将字符列表更改为任意字符(小写、大写等)。是你的需要。

代码语言:javascript
复制
# Increment char (a -> b, az -> ba)
def inc_char(text, chlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'):
    # Unique and sort
    chlist = ''.join(sorted(set(str(chlist))))
    chlen = len(chlist)
    if not chlen:
        return ''
    text = str(text)
    # Replace all chars but chlist
    text = re.sub('[^' + chlist + ']', '', text)
    if not len(text):
        return chlist[0]
    # Increment
    inc = ''
    over = False
    for i in range(1, len(text)+1):
        lchar = text[-i]
        pos = chlist.find(lchar) + 1
        if pos < chlen:
            inc = chlist[pos] + inc
            over = False
            break
        else:
            inc = chlist[0] + inc
            over = True
    if over:
        inc += chlist[0]
    result = text[0:-len(inc)] + inc
    return result
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2156892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档