كيف يمكنني إنشاء سلاسل بيثون مع أصحاب نائب مع عدد تعسفي من العناصر
-
28-09-2019 - |
سؤال
أستطيع أن أفعل
string="%s"*3
print string %(var1,var2,var3)
لكن لا يمكنني إدخال VARS في متغير آخر حتى أتمكن من إنشاء قائمة من VARS على الطيران مع منطق التطبيق. فمثلا
if condition:
add a new %s to string variable
vars.append(newvar)
else:
remove one %s from string
vars.pop()
print string with placeholders
أي أفكار حول كيفية القيام بذلك مع بيثون 2.6؟
المحلول
وماذا عن هذا؟
print ("%s" * len(vars)) % tuple(vars)
حقا ، هذه طريقة سخيفة إلى حد ما لفعل الأشياء. إذا كنت ترغب فقط في سحق جميع المتغيرات معًا في سلسلة واحدة كبيرة ، فمن المحتمل أن تكون هذه فكرة أفضل:
print ''.join(str(x) for x in vars)
وهذا يتطلب على الأقل بيثون 2.4 للعمل.
نصائح أخرى
استخدم قائمة لإلحاق/إزالة السلاسل ثم ".
>>> q = []
>>> for x in range(3):
q.append("%s")
>>> "".join(q)
'%s%s%s'
>>> print "".join(q) % ("a","b","c")
abc
n = 0
if condition:
increment n
vars.append(newvar)
else:
decrement n
vars.pop()
string = "%s" * n
print string with placeholders
لكنك لا تحتاج حقًا إلى تنسيق السلسلة إذا كنت فقط تنضم إلى VARS ؛ لماذا لا تفعل:
"".join( map( str, vars ) )
لا تنتمي إلى StackOverflow