www.91084.com

GVKun编程网logo

Python 2,3干净地将整数转换为“字节”(python怎么把整数转换成字符串)

10

本文将为您提供关于Python2,3干净地将整数转换为“字节”的详细介绍,我们还将为您解释python怎么把整数转换成字符串的相关知识,同时,我们还将为您提供关于Java将整数转换为字节数组、pyth

本文将为您提供关于Python 2,3干净地将整数转换为“字节”的详细介绍,我们还将为您解释python怎么把整数转换成字符串的相关知识,同时,我们还将为您提供关于Java将整数转换为字节数组、python – Pandas将正数转换为1,将负数转换为-1、python – 将整数列表转换为单个值、Python-如何将任意基数的整数转换为字符串?的实用信息。

本文目录一览:

Python 2,3干净地将整数转换为“字节”(python怎么把整数转换成字符串)

Python 2,3干净地将整数转换为“字节”(python怎么把整数转换成字符串)

我发现的最短方法是:

n = 5

# Python 2.
s = str(n)
i = int(s)

# Python 3.
s = bytes(str(n),"ascii")
i = int(s)

我特别关注两个因素:可读性和可移植性。对于Python 3,第二种方法很难看。但是,我认为它可能是向后兼容的。

我错过了一种更短,更干净的方式吗?我目前使用一个lambda表达式来使用新功能对其进行修复,但这也许是不必要的。

Java将整数转换为字节数组

Java将整数转换为字节数组

将转换Integer为的快速方法是Byte Array什么?

例如 0xAABBCCDD => {AA, BB, CC, DD}

答案1

小编典典

看看ByteBuffer类。

ByteBuffer b = ByteBuffer.allocate(4);//b.order(ByteOrder.BIG_ENDIAN); // optional, the initial order of a byte buffer is always BIG_ENDIAN.b.putInt(0xAABBCCDD);byte[] result = b.array();

设置字节顺序保证了result[0] == 0xAAresult[1] == 0xBBresult[2] == 0xCCresult[3] == 0xDD

或者,你可以手动执行以下操作:

byte[] toBytes(int i){  byte[] result = new byte[4];  result[0] = (byte) (i >> 24);  result[1] = (byte) (i >> 16);  result[2] = (byte) (i >> 8);  result[3] = (byte) (i /*>> 0*/);  return result;}

ByteBuffer班是专为尽管这样的脏手任务。实际上,私有java.nio.Bits定义了以下辅助方法ByteBuffer.putInt()

private static byte int3(int x) { return (byte)(x >> 24); }private static byte int2(int x) { return (byte)(x >> 16); }private static byte int1(int x) { return (byte)(x >>  8); }private static byte int0(int x) { return (byte)(x >>  0); }

python – Pandas将正数转换为1,将负数转换为-1

python – Pandas将正数转换为1,将负数转换为-1

我有一列正面和负面的数字.如何将此列转换为新列以实现将正数转换为1而将负数转换为-1?

解决方法

你需要 numpy.sign

df[''new''] = np.sign(df[''col''])

样品:

df = pd.DataFrame({ ''col'':[-1,3,-5,7,1,0]})
df[''new''] = np.sign(df[''col''])
print (df)

   col  new
0   -1   -1
1    3    1
2   -5   -1
3    7    1
4    1    1
5    0    0

python – 将整数列表转换为单个值

python – 将整数列表转换为单个值

如果我有整数列表说,

x = [1,2,3,4,5]

是否有内置功能可以将其转换为12345这样的单个数字?如果没有,最简单的方法是什么?

解决方法

int("".join(str(X) for X in x))

你没有告诉我们x = [1,23,4]的结果应该是什么…我的答案给出1234,其他给出334

Python-如何将任意基数的整数转换为字符串?

Python-如何将任意基数的整数转换为字符串?

Python允许通过给定基数的字符串通过以下方式轻松创建整数

int(str, base). 

我想执行相反的操作:从integer创建一个字符串,即我想要一些函数int2base(num, base),例如:

int(int2base(x, b), b) == x

函数名称/参数顺序不重要。

对于任何数量x和底座b是int()会接受的。

这是一个易于编写的函数:实际上,比在此问题中对其进行描述更容易。但是,我觉得我必须丢失一些东西。

我知道的功能binocthex,但我不能使用他们的几个原因:

这些功能在旧版本的Python上不可用,我需要与这些版本兼容(2.2)

我想要一个通用的解决方案,可以针对不同的基础使用相同的方法

我想允许除2、8、16以外的其他基数

答案1

小编典典

如果您需要与Python的旧版本兼容,则可以使用gmpy(它确实包含快速,完全通用的从int到字符串的转换功能,并且可以针对此类旧版本进行构建-您可能需要尝试使用较旧的版本,因为最近的版本尚未针对过时的Python和GMP版本进行过测试(仅是最新版本),或者为了速度较慢但更加方便,使用Python代码-例如,最简单的方法是:

import stringdigs = string.digits + string.ascii_lettersdef int2base(x, base):    if x < 0:        sign = -1    elif x == 0:        return digs[0]    else:        sign = 1    x *= sign    digits = []    while x:        digits.append(digs[int(x % base)])        x = int(x / base)    if sign < 0:        digits.append(''-'')    digits.reverse()    return ''''.join(digits)

答案2

小编典典

出乎意料的是,人们只给出了转换为较小基数(小于英文字母的长度)的解决方案。没有尝试给出一种可以将任何从2转换为无穷大的基数的解决方案。

所以这是一个超级简单的解决方案:

def numberToBase(n, b):    if n == 0:        return [0]    digits = []    while n:        digits.append(int(n % b))        n //= b    return digits[::-1]

因此,如果你需要将一些超级大数转换为基数577,

numberToBase(67854 ** 15 - 102, 577),会给你一个正确的解决方案: [4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455],

关于Python 2,3干净地将整数转换为“字节”python怎么把整数转换成字符串的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Java将整数转换为字节数组、python – Pandas将正数转换为1,将负数转换为-1、python – 将整数列表转换为单个值、Python-如何将任意基数的整数转换为字符串?等相关知识的信息别忘了在本站进行查找喔。

本文标签: