Python 如何将字符串转换为非字符串?
如何在python中将字符串转换为非字符串Python 如何将字符串转换为非字符串?,python,string,Python,String,如何在python中将字符串转换为非字符串 >>> bits=['0100','0011','1110','1001','0100'] >>> a=map(int,bits) >>> print a 我们把它作为输出 [100, 11, 1110, 1001, 100] 但是我们想要这个 [0100,0011,1110,1001,0100] 在不使用for循环的情况下,这可能吗?您必须在打印前格式化每个整数: print '[' + '
>>> bits=['0100','0011','1110','1001','0100']
>>> a=map(int,bits)
>>> print a
我们把它作为输出
[100, 11, 1110, 1001, 100]
但是我们想要这个
[0100,0011,1110,1001,0100]
在不使用for循环的情况下,这可能吗?您必须在打印前格式化每个整数:
print '[' + ', '.join(map(lambda i: format(i, '04d'), a)) + ']'
或使用:
print '[' + ', '.join(bits) + ']'
无需首先将所有字符串转换为整数
演示:
请注意,如果您的位
字符串是二进制值,则需要对其进行如下解释:
>>> int('0100', 2)
4
>>> format(4, '04b')
'0100'
这将通过将数字解释为二进制,将由0和1组成的字符串转换为整数,并使用4位数字和0填充将整数转换回二进制字符串表示形式。您必须在打印前格式化每个整数:
print '[' + ', '.join(map(lambda i: format(i, '04d'), a)) + ']'
或使用:
print '[' + ', '.join(bits) + ']'
无需首先将所有字符串转换为整数
演示:
请注意,如果您的位
字符串是二进制值,则需要对其进行如下解释:
>>> int('0100', 2)
4
>>> format(4, '04b')
'0100'
这将通过将数字解释为二进制来将由0和1组成的字符串转换为整数,并使用4位数字和0填充将整数转换回二进制字符串表示形式。您可以自己滚动列表,而不是使用Python的默认实现来打印列表:
>>> bits=['0100','0011','1110','1001','0100']
>>> print '[' + ','.join(bits) + ']'
[0100,0011,1110,1001,0100]
在这种情况下,由于位
列表中的项目已经填充并且是字符串,因此没有理由在任何时候转换为int或任何其他数据类型
如果您确实想要一个填充的数字列表,那么您的原始代码就足够了。它可能不会在左边显示0,但因为它们是数字,所以您不需要它们。您可以自己滚动,而不是使用Python的默认实现来打印列表:
>>> bits=['0100','0011','1110','1001','0100']
>>> print '[' + ','.join(bits) + ']'
[0100,0011,1110,1001,0100]
在这种情况下,由于位
列表中的项目已经填充并且是字符串,因此没有理由在任何时候转换为int或任何其他数据类型
如果您确实想要一个填充的数字列表,那么您的原始代码就足够了。它可能不会在左边显示0,但因为它们是数字,所以您不需要它们。如果有整数,则必须将其重新格式化为带填充的字符串。您需要它做什么?带前导零的整数与不带前导零的整数没有什么不同。前导0是指八进制数吗?如果有整数,则必须将其重新格式化为带填充的字符串。这有什么用?带前导零的整数和不带前导零的整数没有什么不同。你是说前导0是八进制数吗?