gpt4 book ai didi

string - 从给定字符生成固定长度的随机字符串的内置方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:46 25 4
gpt4 key购买 nike

这就是我的问题所在:我需要制作一个 50 个字符长的随机字符串,由 10 组成。

我知道如何解决这个问题,甚至有一条直线。我也在 SO 上寻找这个问题的各种解决方案,只是为了找回我已经知道的东西( 12 等)。但我真正想要的是执行此操作的 Pythonic 方式。

目前,我倾向于 ''.join(( random.choice([0,1]) for i in xrange(50) ))

是否有更 pythonic 的方式来做到这一点?是否有一个内置函数可以执行类似的操作,也许在 itertools 中?

最佳答案

对于 Python2.7 或更高版本:

In [83]: import random

In [84]: '{:050b}'.format(random.randrange(1<<50))
Out[84]: '10011110110110000011111000011100101111101001001011'

(在Python2.6中,使用'{0:050b}'代替'{:050b}'。)


解释:

string.format 方法可以将整数转换为二进制字符串表示形式。执行此操作的基本格式代码是 '{:b}':

In [91]: '{:b}'.format(10)
Out[91]: '1010'

要制作宽度为 50 的字符串,请使用格式代码 '{:50b}':

In [92]: '{:50b}'.format(10)
Out[92]: ' 1010'

并用零填充空白,使用{:050b}:

In [93]: '{:050b}'.format(10)
Out[93]: '00000000000000000000000000000000000000000000001010'

syntax for str.format起初有点令人生畏。这是我的备忘单:

http://docs.python.org/library/string.html#format-string-syntax
replacement_field ::= "{" field_name ["!" conversion] [":" format_spec] "}"
field_name ::= (identifier|integer)("."attribute_name|"["element_index"]")*
attribute_name ::= identifier
element_index ::= integer
conversion ::= "r" | "s"
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <a character other than '}'>
align ::= "<" | ">" | "=" | "^"
"=" forces the padding to be placed after the sign (if any)
but before the digits. (for numeric types)
"<" left justification
">" right justification
"^" center justification
sign ::= "+" | "-" | " "
"+" places a plus/minus sign for all numbers
"-" places a sign only for negative numbers
" " places a leading space for positive numbers
# for integers with type b,o,x, tells format to prefix
output with 0b, 0o, or 0x.
0 enables zero-padding. equivalent to 0= fill align.
width ::= integer
, tells format to use a comma for a thousands separator
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" |
"o" | "x" | "X" | "%"
c convert integer to corresponding unicode character
n uses a locale-aware separator
% multiplies number by 100, display in 'f' format, with percent sign

关于string - 从给定字符生成固定长度的随机字符串的内置方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com