• 0

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

كنت أتسائل عمّا إذا كان هنالك طريقة بسيطة لتحويل سلسلة نصية مثل هذه:

x = u'[ "A","B","C" , " D"]'

إلى متغير من نوع قائمة حتى لو كانت السلسلة النصية بها فراغات(كالمثال السابق):

x = ["A","B","C","D"]

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

في العادة يتم استخدام eval لتحويل سلسلة نصية إلى شيفرة برمجية لكن بما أنه يمكن أن تكون السلسلة النصية من مدخلات المستخدم لذلك سنستخدم طرق غيرها لأسباب أمنية.
إذا كنت تستخدم الإصدار 2.6 من بايثون فما فوق يمكنك في هذه الحالة استعمال ast بدلا من eval كما في المثال التالي:

import ast
l = ast.literal_eval('[ "A","B","C" , " D"]')
l = [i.strip() for i in l]

وهنالك طريقة أخرى باستخدام وحدة numpy والتي ستُرجع قائمة بدون تعديلات (بدون حذف الفراغات الزائدة):

x = u'[ "A","B","C" , " D"]'
list_string = str(x)
import numpy as np
print np.array(list_string)

والنتيجة:

>>>
[ "A","B","C" , " D"]

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن