كيفية سلسلة السلاسل مع القيم الثنائية في بيثون؟
-
06-07-2019 - |
سؤال
ما هي أسهل طريقة في بيثون لسلسلة سلسلة مع القيم الثنائية؟
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
لا تنتمي إلى StackOverflow