Python 十六进制数的lstrip,如何?

Python 十六进制数的lstrip,如何?,python,Python,我一直在使用Python将一个数字转换为十六进制格式,并使用str.lstrip去掉每个数字的'Ox'前缀;比如: >>> data='0' >>> data '0' >>> data=str(hex(int(data))) >>> data '0x0' >>> data=data.lstrip("0x") >>> data '' 我在这里遇到的问题是,它不是打印'0',而是在应用lst

我一直在使用Python将一个数字转换为十六进制格式,并使用
str.lstrip
去掉每个数字的
'Ox'
前缀;比如:

>>> data='0'
>>> data
'0'
>>> data=str(hex(int(data)))
>>> data
'0x0'
>>> data=data.lstrip("0x")
>>> data
''

我在这里遇到的问题是,它不是打印
'0'
,而是在应用
lstrip
方法后打印
'
。我的问题是,如何才能使它打印出
'0'
,而不是空字符串
'
?我需要在
str
类型中使用它,因为我会将该数据存储在一个文件中。

如果您知道
0x
前缀在那里,可以使用切片将其删除:

>>> "0xdeadbeef"[2:]
'deadbeef'
或者,您可以使用字符串格式运算符而不是
hex()

或者使用
格式()


如果您知道有
0x
前缀,可以使用切片将其删除:

>>> "0xdeadbeef"[2:]
'deadbeef'
或者,您可以使用字符串格式运算符而不是
hex()

或者使用
格式()


请注意,
lstrip(“0x”)
不会(仅仅)剥离
'0x'
,它会剥离所有
0
s和
x
s,直到最左边的字符,该字符既不是
0
也不是
x
。请注意,
lstrip(“0x”)
不会(仅仅)剥离
'0x'
,它将所有
0
s和
x
s剥离到既不是
0
也不是
x
的最左边的字符。您还可以概括切片解决方案:
lcut=lambda s,前缀:s[len(prefix):]if s.startswith(prefix)else s
-我想知道为什么这不在标准库中。或者是它,我错过了它?您还可以概括切片解决方案:
lcut=lambda s,前缀:s[len(prefix):]如果s.startswith(prefix)else s
——我想知道为什么标准库中没有这个。还是我错过了?
>>> format(3735928559, "x")
'deadbeef'