В Python, как мне создать строку из n символов в одной строке кода?

Мне нужно создать строку с n символами в Python. Есть ли один ответ для достижения этой проблемы с существующей библиотекой Python? Например, мне нужна строка из 10 букв:

string_val = 'abcdefghij' 

  • sprintf как функциональность в Python
  • Любой лучший способ сделать a = b + a?
  • Найти все вхождения символа в строке
  • Python: как проверить строку для подстрок из списка?
  • Обратный порядок строк
  • Есть ли функция в Python, которая генерирует все строки длины n над заданным алфавитом?
  • Как правильно отсортировать строку с номером внутри?
  • Как я могу получить следующую строку в алфавитно-цифровом порядке в Python?
  • 6 Solutions collect form web for “В Python, как мне создать строку из n символов в одной строке кода?”

    Чтобы просто повторить одно и то же письмо 10 раз:

     string_val = "x" * 10 # gives you "xxxxxxxxxx" 

    И если вы хотите что-то более сложное, например, n случайных строчных букв, это все еще только одна строка кода (не считая операторов импорта и определяющих n ):

     from random import choice from string import lowercase n = 10 string_val = "".join(choice(lowercase) for i in range(n)) 

    Первые десять строчных букв – string.lowercase[:10] (если вы, конечно же, импортировали стандартную string модуля библиотеки ;-).

    Другие способы «сделать строку из 10 символов»: 'x'*10 (все десять символов будут иметь нижний регистр x s ;-), ''.join(chr(ord('a')+i) for i in xrange(10)) (первые десять строчных букв снова) и т. д. и т. д .;;).

    Почему «одна строка»? Вы можете поместить что угодно на одну строку.

    Предполагая, что вы хотите, чтобы они начинались с «a» и каждый раз увеличивали на один символ (с оберткой> 26), вот строка:

     >>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x)))) >>> mkstring(10) 'abcdefghij' >>> mkstring(30) 'abcdefghijklmnopqrstuvwxyzabcd' 

    Если вы можете использовать повторяющиеся буквы, вы можете использовать оператор * :

     >>> 'a'*5 'aaaaa' 

    если вам просто нужны буквы:

      'a'*10 # gives 'aaaaaaaaaa' 

    если вы хотите последовательные буквы (до 26):

      ''.join(['%c' % x for x in range(97, 97+10)]) # gives 'abcdefghij' 

    Это может быть немного не вопросом, но для тех, кто интересуется случайностью сгенерированной строки, мой ответ будет следующим:

     import os import string def _pwd_gen(size=16): chars = string.letters chars_len = len(chars) return str().join(chars[int(ord(c) / 256. * chars_len)] for c in os.urandom(size)) 

    См. Эти ответы и источник random.py для получения дополнительной информации.

    Python - лучший язык программирования в мире.