我有这个清单:
a_list = [0x00, 0x00, 0x00, 0x00]
当我打印它时,我得到:
print a_list
[0, 0, 0, 0]
但我想:[0x0, 0x0, 0x0, 0x0]
或[0x00, 0x00, 0x00, 0x00]
,现在无所谓。
我试图创建一个函数,例如:
def hex_print(the_list):
string = '['
for element in the_list:
if(the_list.index(element) < len(the_list)):
print(str(the_list.index(element)))
string = string + hex(element) + ', '
else:
print(str(the_list.index(element)))
string = string + hex(element) + ']'
print string
但每次打印的信息都是:
[0x0, 0x0, 0x0, 0x0,
我认为the_list.index(element)总是返回the_list中第一次出现的元素,而不是元素的实际位置。有没有办法让我得到元素的实际位置?
答案 0 :(得分:8)
>>> a_list = range(4)
>>> print '[{}]'.format(', '.join(hex(x) for x in a_list))
[0x0, 0x1, 0x2, 0x3]
这样做的好处是不会在所有元素周围加上引号,因此它会为数字列表生成有效的文字。
答案 1 :(得分:4)
print [hex(no) for no in a_list]
hex
函数将数字转换为十六进制表示。
答案 2 :(得分:3)
答案 3 :(得分:1)
对于python3,请使用以下代码:
print([hex(x) for x in a_list])
答案 4 :(得分:0)
如果要零填充:
", ".join("0x{:04x}".format(num) for num in a_list)
“ 0x {:04x}”将数字“ 0x”放在数字前面。 “ {:04x}”部分将零填充到4个位置,以十六进制打印数字。