اذهب إلى المحتوى

السؤال

نشر

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

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

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

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

Recommended Posts

  • 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"]

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...