python - لغة - مكتبة اكواد بايثون




إذا كان// في فهم قائمة بايثون؟ (2)

كيف يمكنني القيام بما يلي في بايثون؟

row = [unicode(x.strip()) for x in row if x is not None else '']

بشكل أساسي:

  1. استبدل كل Nones بأوتار فارغة ، ثم
  2. تنفيذ وظيفة.

اتجاه واحد:

def change(f):
    if f is None:
        return unicode(f.strip())
    else:
        return ''

row = [change(x) for x in row]

على الرغم من ذلك لديك:

row = map(change, row)

أو يمكنك استخدام مضمنة لامدا.


هنا مثال توضيحي آخر:

>>> print(", ".join(["ha" if i else "Ha" for i in range(3)]) + "!")
Ha, ha, ha!

إنه يستغل حقيقة أنه if i قيّمت إلى False لـ 0 وإلى True لكافة القيم الأخرى التي تم إنشاؤها بواسطة range() الوظائف range() . لذلك ، يتم تقييم الاستيعاب على النحو التالي:

>>> ["ha" if i else "Ha" for i in range(3)]
['Ha', 'ha', 'ha']




list-comprehension