我正在尝试使用以下代码生成随机字符串。
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']
有人能指出我做错的方向吗?
谢谢!
答案 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)