MaxReve نشر 25 نوفمبر 2015 أرسل تقرير مشاركة نشر 25 نوفمبر 2015 كنت أتسائل عمّا إذا كان هنالك طريقة بسيطة لتحويل سلسلة نصية مثل هذه:x = u'[ "A","B","C" , " D"]' إلى متغير من نوع قائمة حتى لو كانت السلسلة النصية بها فراغات(كالمثال السابق):x = ["A","B","C","D"] اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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"] المصدر اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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'] اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
MaxReve
كنت أتسائل عمّا إذا كان هنالك طريقة بسيطة لتحويل سلسلة نصية مثل هذه:
إلى متغير من نوع قائمة حتى لو كانت السلسلة النصية بها فراغات(كالمثال السابق):
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.