Python:生成一个字符串。

问题描述 投票:1回答:5

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

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

有人能指出我做错了什么吗?

谢谢!

python join bit
5个回答
3
投票
修正您的代码:

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('01') for _ in range(10)) '0011010100'


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


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

0
投票
我的一线将是:

0
投票
您的代码是正确的,但是缺少3个“单词”:

import

© www.soinside.com 2019 - 2024. All rights reserved.