评估两个或多个列表

Rin*_*nce 5 python list

你好,codeboys和codegirls!

我遇到了一个看似简单的解决方案的简单问题.但作为一个Python新手,我觉得在某个地方有更好的方法.

假设您有一个混合字符串列表.袋中有两种基本类型的字符串 - 其中带有"="(a =马铃薯)和没有(Lady Jane)的字符串.你需要的是将它们分成两个列表.

显而易见的方法是:

for arg in arguments:
   if '=' in arg:
       equal.append(arg)
   else:
       plain.append(arg)
Run Code Online (Sandbox Code Playgroud)

还有其他更优雅的方式吗?就像是:

equal = [arg for arg in arguments if '=' in arg]
Run Code Online (Sandbox Code Playgroud)

但要分成多个列表?

如果您有多种类型的数据怎么办?

Aar*_*lla 4

尝试

for arg in arguments:
    lst = equal if '=' in arg else plain
    lst.append(arg)
Run Code Online (Sandbox Code Playgroud)

或(神圣的丑陋)

for arg in arguments:
    (equal if '=' in arg else plain).append(arg)
Run Code Online (Sandbox Code Playgroud)

第三种选择:创建一个类,该类提供append()并分类为多个列表。

  • @giorgian,你的想法真是**可怕**:当`equal`为空时(即在开始时),你的“更易读”的形式总是给出“plain”,所以什么都不会被附加到“equal”上——“更具可读性”就这么多了(哎呀!-)。 (2认同)