كيفية سلسلة السلاسل مع القيم الثنائية في بيثون؟

StackOverflow https://stackoverflow.com/questions/1012457

سؤال

ما هي أسهل طريقة في بيثون لسلسلة سلسلة مع القيم الثنائية؟

sep = 0x1
data = ["abc","def","ghi","jkl"]

وتبحث عن "abc0x1def0x1ghi0x1jkl" بيانات النتيجة مع 0x1 كونها قيمة ثنائية لا السلسلة "0x1".

هل كانت مفيدة؟

المحلول

وأعتقد

joined = '\x01'.join(data) 

وينبغي أن نفعل ذلك. \x01 هو تسلسل هروب بايت مع 0x01 القيمة.

نصائح أخرى

وظيفة مركز حقوق الإنسان () سيكون لها تأثير ترجمة متغير إلى سلسلة مع قيمة ثنائية كنت تبحث عنه.

>>> sep = 0x1
>>> sepc = chr(sep)
>>> sepc
'\x01'

ووالانضمام () وظيفة ويمكن بعد ذلك أن تستخدم لCONCAT سلسلة من السلاسل مع قيمة ثنائية ك فاصل.

>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'

وأنا أعلم أن هذه ليست أفضل طريقة، ولكن وسيلة أخرى يمكن أن تكون مفيدة في سياق مختلف لنفس السؤال هو:

>>> x=(str(bin(0b110011000)))
>>> b=(str(bin(0b11111111111)))
>>> print(x+b)
0b1100110000b11111111111

وإذا لزم الأمر، لإزالة اليسرى الأكثر بت اثنين من كل سلسلة (أي لوحة 0B) شريحة وظيفة [2:] بقيمة 2 الأعمال:

>>> x=(str(bin(0b110011000)[2:]))
>>> b=(str(bin(0b11111111111)[2:]))
>>> print(x+b)
11001100011111111111
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top