评估成两个或多个列表

2024-05-15 00:29:26 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,代码男孩和女孩!在

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

假设你有一个混合字符串的列表。麻袋里有两种基本的弦——一种是带“=”的(a=potato),另一种是不带的(Lady Jane)。你需要的是把它们分成两个列表。在

显而易见的方法是:

for arg in arguments:
   if '=' in arg:
       equal.append(arg)
   else:
       plain.append(arg)

还有其他更优雅的方式吗?比如:

^{pr2}$

但要分为多个列表?在

如果你有不止一种类型的数据呢?在


Tags: 方法字符串代码in列表forargpotato
3条回答

试试看

for arg in arguments:
    lst = equal if '=' in arg else plain
    lst.append(arg)

或者(真丑)

^{pr2}$

第三个选项:创建一个提供append()并将其排序到多个列表中的类。在

我只想了解两个列表。虽然这确实会产生一些开销(列表上有两个循环),但是使用列表理解比使用for更像python。它(在我看来)比使用各种非常酷的技巧更易读,但是人们知道的更少。在

您可以使用^{}进行此操作:

import itertools
f = lambda x: '=' in x
groups = itertools.groupby(sorted(data, key=f), key=f)
for k, g in groups:
    print k, list(g)

相关问题 更多 >

    热门问题