我怎样才能增加一个字符?

2022-01-12 00:00:00 python char increment

问题描述

我是 Python 的新手,来自 Java 和 C.如何增加 char?在 Java 或 C 中,chars 和 int 实际上是可以互换的,并且在某些循环中,能够对 chars 进行增量以及按 chars 索引数组对我非常有用.

I'm new to Python, coming from Java and C. How can I increment a char? In Java or C, chars and ints are practically interchangeable, and in certain loops, it's very useful to me to be able to do increment chars, and index arrays by chars.

如何在 Python 中做到这一点?没有传统的 for(;;) 循环器已经够糟糕了 - 有什么方法可以实现我想要实现的目标,而无需重新考虑我的整个策略?

How can I do this in Python? It's bad enough not having a traditional for(;;) looper - is there any way I can achieve what I want to achieve without having to rethink my entire strategy?


解决方案

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

In Python 2.x, just use the ord and chr functions:

>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>> 

Python 3.x 使这更加有条理和有趣,因为它在字节和 unicode 之间有明显的区别.默认情况下,字符串"是 unicode,因此上述方法有效(ord 接收 Unicode 字符,chr 生成它们).

Python 3.x makes this more organized and interesting, due to its clear distinction between bytes and unicode. By default, a "string" is unicode, so the above works (ord receives Unicode chars and chr produces them).

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

But if you're interested in bytes (such as for processing some binary data stream), things are even simpler:

>>> 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'

相关文章