Python:生成一串位。

时间:2014-03-24 12:33:50

标签: python join bit

我正在尝试使用以下代码生成随机字符串。

bitString = []

for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
    ''.join(bitString)

然而,不要给我这样的东西:

10011110

我得到的东西看起来像这样:

['1','0','0','1','1','1','1','0']

有人能指出我做错的方向吗?

谢谢!

5 个答案:

答案 0 :(得分:3)

您正在循环中加入结果。您可以取消join行,就像这样

import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)

或者,更好的是,您可以像这样使用生成器表达式

print "".join(str(random.randint(0, 1)) for i in range(8))

答案 1 :(得分:2)

bitList = []

for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitList.append(x)

bitString = ''.join(bitList)

更多pythonic就是这样:

>>> from random import choice
>>> ''.join(choice(['0', '1']) for _ in xrange(10))
'0011010100'

答案 2 :(得分:0)

您可以将bitString声明为字符串变量(而不是追加到列表然后转换为字符串):

bitString = ""
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString += x

print bitString

答案 3 :(得分:0)

我的单行将是:

>>> import random
>>> print ''.join(random.choice("01") for i in range(8))
11100000
>>> 

希望有帮助:),

干杯!亚历

答案 4 :(得分:0)

您的代码是正确的,但错过了3个“单词”:导入随机打印

import random
bitString = []
for i in range(0, 8):
    x = str(random.randint(0, 1))
    bitString.append(x)
print ''.join(bitString)