Я новичок в Python, пришедший с Java и C. Как я могу увеличить значение символа? В Java или C символы и целые числа практически взаимозаменяемы, и в некоторых циклах для меня очень полезно иметь возможность увеличивать символы и индексировать массивы по символам.
Как я могу это сделать в Python? Достаточно плохо, что у меня нет традиционного цикла for (;;) - есть ли способ добиться того, чего я хочу достичь, не пересматривая всю свою стратегию?
for
цикл:for i in range(50): do_something_with(i)
. Да ладно, это не так уж и плохо !![''.join(i) for i in itertools.product(string.ascii_lowercase, repeat=2)]
Ответы:
В Python 2.x, просто использовать
ord
иchr
функцию:Python 3.x делает это более организованным и интересным благодаря четкому различию между байтами и юникодом. По умолчанию «строка» - это Unicode, поэтому все вышесказанное работает (
ord
получает символы Unicode иchr
производит их).Но если вас интересуют байты (например, для обработки некоторого потока двоичных данных), все еще проще:
источник
"Достаточно плохо не иметь традиционного петлителя for (;;)" ?? Какой?
Ты пытаешься сделать
Или, может быть, вы используете
string.uppercase
илиstring.letters
?У Python этого нет,
for(;;)
потому что часто есть лучшие способы сделать это. В нем также нет математики символов, потому что в этом нет необходимости.источник
Я пришел из PHP, где вы можете увеличивать char (от A до B, от Z до AA, от AA до AB и т. Д.) С помощью оператора ++. Я сделал простую функцию, которая делает то же самое в Python. Вы также можете изменить список символов на любые (строчные, прописные и т. Д.), Которые вам нужны.
источник
Существует способ увеличить количество символов, используя
ascii_letters
fromstring
package, которыйascii_letters
представляет собой строку, содержащую весь английский алфавит, верхний и нижний регистры:Также это можно сделать вручную;
источник
Проверьте это: USING FOR LOOP
for a in range(5): x='A' val=chr(ord(x)+a) print(val)
ВЫХОД: ABCBDE
источник
вывод:
источник