MaxReve نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 كنت أتسائل عمّا إذا كان هنالك طريقة بسيطة لتحويل سلسلة نصية مثل هذه:x = u'[ "A","B","C" , " D"]' إلى متغير من نوع قائمة حتى لو كانت السلسلة النصية بها فراغات(كالمثال السابق):x = ["A","B","C","D"] اقتباس
0 هشام رزق الله نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 في العادة يتم استخدام 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"] المصدر اقتباس
0 Ali Haidar Ahmad نشر 1 أبريل 2022 أرسل تقرير نشر 1 أبريل 2022 الطريقة الأبسط لذلك هي: x = '[ "A","B","C" , " D"]' print(list(eval(x))) إذا كنت تريد أيضًا إزالة المسافت الفارغة: x = [x.strip() for x in eval('[ "A","B","C" , " D"]')] أو من خلال الدالة loads من json: import json x = '[ "A","B","C" , " D"]' json.loads(x) # ['A', 'B', 'C', ' D'] اقتباس
السؤال
MaxReve
كنت أتسائل عمّا إذا كان هنالك طريقة بسيطة لتحويل سلسلة نصية مثل هذه:
إلى متغير من نوع قائمة حتى لو كانت السلسلة النصية بها فراغات(كالمثال السابق):
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.