GVKun编程网logo

遍历Python 3中的单个字节(python遍历每一个字符)

8

关于遍历Python3中的单个字节和python遍历每一个字符的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python3中的快速异或字节、Python:将字符串拆分为单个字母所组成的列

关于遍历Python 3中的单个字节python遍历每一个字符的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python 3中的快速异或字节、Python : 将字符串拆分为单个字母所组成的列表并合并单个字母、python – 方法中的单个字符串或字符串列表、python-3.x – 如何在Python3中打印()一个字符串,没有例外?等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

遍历Python 3中的单个字节(python遍历每一个字符)

遍历Python 3中的单个字节(python遍历每一个字符)

bytes在Python 3中遍历一个对象时,将单个对象获取bytesints

>>> [b for b in b''123''][49, 50, 51]

如何获取1个长度的bytes对象呢?

以下是可能的,但对读者来说不是很明显,并且很可能表现不佳:

>>> [bytes([b]) for b in b''123''][b''1'', b''2'', b''3'']

答案1

小编典典

如果您担心此代码的性能,并且inta字节不适合您的情况,那么您可能应该重新考虑使用的数据结构,例如使用str对象代替。

您可以对bytes对象进行切片以获得1个长度的bytes对象:

L = [bytes_obj[i:i+1] for i in range(len(bytes_obj))]

有PEP
0467-针对二进制序列的次要API改进,提出了以下bytes.iterbytes()方法:

>>> list(b''123''.iterbytes())[b''1'', b''2'', b''3'']

python 3中的快速异或字节

python 3中的快速异或字节

我需要异或2个字节的对象。我使用以下代码:

def bxor(b1, b2): # use xor for bytes    result = b""    for b1, b2 in zip(b1, b2):        result += bytes([b1 ^ b2])    return result

当字节对象较小时,它可以正常工作,但是如果对大型对象(几个MB)进行异或运算,则将花费很长时间(几个小时)。我怎样才能使其更快?

答案1

小编典典

bytes对每个具有一百万个元素的对象进行XOR运算时,此循环将创建大约一百万个临时bytes对象,并将 每个 字节平均从一个临时对象复制到下
一个
字节大约50万次bytes。请注意,字符串存在完全相同的问题(也存在许多其他语言)。弦乐解决方案是创建弦乐部件列表,并''''.join在最后使用它来有效地连接它们。您可以对字节执行相同的操作:

def bxor(b1, b2): # use xor for bytes    parts = []    for b1, b2 in zip(b1, b2):        parts.append(bytes([b1 ^ b2]))    return b''''.join(parts)

或者,您可以使用bytearray可变的a ,因此可以避免此问题。它还允许您不必bytes在每次迭代中分配新对象,您只需追加byte
/即可int

def bxor(b1, b2): # use xor for bytes    result = bytearray()    for b1, b2 in zip(b1, b2):        result.append(b1 ^ b2)    return result

return bytes(result)如果您想要/需要一个bytes对象,也可以选择。

Python : 将字符串拆分为单个字母所组成的列表并合并单个字母

Python : 将字符串拆分为单个字母所组成的列表并合并单个字母

字符串拆分成由单个字母组成的列表:

string="asdasd"
print(list(string))

输出:
[''a'', ''s'', ''d'', ''a'', ''s'', ''d'']

将单个字母组成的列表进行合并:

string="asdasd"
print(list(string))
string_two=list(string)
print("".join(string_two))

输出:

[''a'', ''s'', ''d'', ''a'', ''s'', ''d'']
asdasd

 

得解。

python – 方法中的单个字符串或字符串列表

python – 方法中的单个字符串或字符串列表

我已经遇到了这么多次.我正在处理很多可以接受字符串列表的方法.几次我不小心传递了一个字符串,它被分解成一个列表,并使用每个字符,这不是所需的行为.
def test(a,b):
    x = []
    x.extend(a)
    x.extend(b)
    return x

x = [1,2,3,4]

我不想发生什么事情

test(x,'test')
[1,4,'t','e','s','t']

我必须诉诸一个奇怪的语法:

test(x,['list'])

我想让这些工作隐含地工作:

test(x,'list')
[1,'test']

test(x,['one','two','three'])
[1,'one','three']

我真的觉得有一个“pythonic”的方式来做这个或涉及鸭打字的东西,但我看不到它.我知道我可以使用isinstance()来检查它是否是一个字符串,但我觉得有更好的方法.

编辑:我使用的是python 2.4.3

解决方法

嗯,这可能很简单:
>>> def a(*args):
...     x=[]
...     for i in args:
...             if '__iter__' in dir(i):
...                     x+=list(i)
...             else:
...                     x.append(i)
...     return x
... 
>>> a(1,4)
[1,4]
>>> a(1,[3,4])
[1,4],'123')
[1,'123']
>>> a(1,'123',1231,(1,4))
[1,1,4]

python-3.x – 如何在Python3中打印()一个字符串,没有例外?

python-3.x – 如何在Python3中打印()一个字符串,没有例外?

看似简单的问题:如何在 Python3中打印()字符串?应该是一个简单的:

print(my_string)

但这不起作用.根据my_string的内容,环境变量和您使用的操作系统将引发UnicodeEncodeError异常:

>>> print("\u3423")
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
UnicodeEncodeError: ''ascii'' codec can''t encode character ''\u3423'' in position 0: ordinal not in range(128)

是否有一种干净的便携方式来解决这个问题?

扩展一点:这里的问题是python3字符串包含Unicode编码字符,而终端可以有任何编码.如果你很幸运,你的终端可以处理字符串中包含的所有字符,一切都会好的,如果你的终端不能(例如有人设置LANG = C),那么你得到一个例外.

如果在python3中手动编码字符串,则可以提供忽略或替换不可编码字符的错误处理程序:

"\u3423".encode("ascii",errors="replace")

对于print()我没有看到插入错误处理程序的简单方法,即使有,一个简单的错误处理程序似乎是一个可怕的想法,因为它会修改数据.一个条件错误处理程序可能会工作(即检查isatty()并根据该做什么来决定),但是看起来非常麻烦只是为了打印()一个字符串,我甚至不确定它会不会在某些情况下失败.

一个现实世界的例子,这个问题就是这个例子:

Python3: UnicodeEncodeError only when run from crontab

解决方法

Is there a clean portable way to fix this?

设置PYTHONIOENCODING =< encoding>:< error_handler>例如.,

$PYTHONIOENCODING=utf-8 python your_script.py >output-in-utf-8.txt

在您的情况下,我将您的环境(LANG,LC_CTYPE)配置为接受非ascii输入:

$locale charmap

我们今天的关于遍历Python 3中的单个字节python遍历每一个字符的分享就到这里,谢谢您的阅读,如果想了解更多关于python 3中的快速异或字节、Python : 将字符串拆分为单个字母所组成的列表并合并单个字母、python – 方法中的单个字符串或字符串列表、python-3.x – 如何在Python3中打印()一个字符串,没有例外?的相关信息,可以在本站进行搜索。

本文标签: