كيف يمكنني تحويل قائمة من القيم أسكي إلى سلسلة في بيثون؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

ولقد حصلت قائمة في برنامج بايثون الذي يحتوي على سلسلة من الأرقام، التي هي نفسها القيم ASCII. كيف يمكنني تحويل هذا إلى سلسلة "العادية" أستطيع أن أردد على الشاشة؟

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

المحلول

وربما كنت تبحث عن "مركز حقوق الإنسان () ':

>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'

نصائح أخرى

والحل الأساسي نفس الآخرين، ولكن أنا شخصيا أفضل استخدام خريطة بدلا من قائمة الفهم:


>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(map(chr,L))
'hello, world'
import array
def f7(list):
    return array.array('B', list).tostring()

ومن أنماط بيثون - حكاية الأمثل

l = [83, 84, 65, 67, 75]

s = "".join([chr(c) for c in l])

print s

وربما ليس كما Pyhtonic حلا، ولكن أسهل للقراءة لودي مثلي:

charlist = [34, 38, 49, 67, 89, 45, 103, 105, 119, 125]
mystring = ""
for char in charlist:
    mystring = mystring + chr(char)
print mystring

ومواطنه working_ascii ():     "" "         تحية طيبة !         71، 114، 101، 101، 116، 105، 110، 103، 115، 33     "" "

hello = [71, 114, 101, 101, 116, 105, 110, 103, 115, 33]
pmsg = ''.join(chr(i) for i in hello)
print(pmsg)

for i in range(33, 256):
    print(" ascii: {0} char: {1}".format(i, chr(i)))

وworking_ascii ()

ويمكنك استخدام bytes(list).decode() للقيام بذلك - وlist(string.encode()) للحصول على القيم مرة أخرى

Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top