加入整数列表

The*_*512 3 python arrays list

我有一个应该表示二进制的整数列表:

x = [1, 0, 1, 1, 0, 0, 0, 0]
y = ''.join(x[:4])
Run Code Online (Sandbox Code Playgroud)

我似乎无法加入它,我得到“序列项 0:预期的 str 实例,找到了 int”

但是,如果我这样做

x = [str(1), str(0), str(1), str(1), str(0), str(0), str(0), str(0)]
y = ''.join(x[:4])
Run Code Online (Sandbox Code Playgroud)

我得到“类型错误 int 对象不可下标”但是我不想访问整数。

有谁知道怎么回事?

hee*_*ayl 8

str.join 接受一个迭代,其元素需要是字符串,而不是整数。

我看到您已经自己解决了这个问题,并且您的第二种方法确实有效(您给出的错误可能来自其他一些代码)。但每次转换intstr 手动像那绝对是联合国Python化。相反,您可以使用列表推导式/生成器表达式或mapints转换为strs:

''.join(str(i) for i in x[:4])
''.join(map(str, x[:4]))
Run Code Online (Sandbox Code Playgroud)

例子:

In [84]: ''.join(str(i) for i in x[:4])
Out[84]: '1011'

In [85]: ''.join(map(str, x[:4]))
Out[85]: '1011'
Run Code Online (Sandbox Code Playgroud)