当前位置: 首页 > 面试题库 >

如何在不分割字符串的情况下拼合列表?

冀胤运
2023-03-14
问题内容

我想拼合可能包含其他列表的列表, 但不要 弄乱字符串。例如:

In [39]: list( itertools.chain(*["cat", ["dog","bird"]]) )
Out[39]: ['c', 'a', 't', 'dog', 'bird']

我想

['cat', 'dog', 'bird']

问题答案:
def flatten(foo):
    for x in foo:
        if hasattr(x, '__iter__'):
            for y in flatten(x):
                yield y
        else:
            yield x

__iter__与Python中几乎所有其他可迭代对象不同,字符串实际上实际上并不具有属性。但是请注意,这在Python
3中有所变化,因此上述代码仅在Python 2.x中有效。)

适用于Python 3.x的版本:

def flatten(foo):
    for x in foo:
        if hasattr(x, '__iter__') and not isinstance(x, str):
            for y in flatten(x):
                yield y
        else:
            yield x


 类似资料:
  • 问题内容: 我正在寻找Python中忽略大小写字符串的比较。 我尝试过: 但忽略案例没有成功。我需要在给定的文本文件中找到一组单词。我正在逐行读取文件。一行上的单词可以是 mandy , Mandy , MANDY 等(我不想使用/等)。 我正在寻找下面的Perl代码的Python等效项。 问题答案: 如果您不想使用,则可以使用正则表达式:

  • 问题内容: let string = “hello hi” var hello = “” var hi = “” 我不会分割字符串,以便hello的值获得“ hello”,hi的值获得“ hi” 问题答案: 试试这个: 字符串的名称在哪里,并且包含由空格分隔的组件。 然后,您可以将组件获取为: Doc:componentsSeparatedByString 编辑: 对于Swift 3,以上将是:

  • 我用了这段代码并运行,但没有输出出来不知道为什么? 但如果正在使用s=“”;则也没有输出。 但是当我使用s=“”;那么输出就来了,为什么会这样呢?

  • 问题内容: 我从plist中的字典中加载了一个值,但是当我将其打印到控制台时,它会打印:Optional(Monday Title),而不仅仅是“ Monday Title”。 如何在打印时摆脱值的Optional()? 问题答案: 摆脱的一种方法是使用感叹号: 但是,只有在确定存在该值的情况下,才应这样做。另一种方法是解包和使用条件,例如: 将该程序粘贴到runswiftlang中进行演示:

  • 问题内容: 我想知道是否可以仅在angularJS中拆分字符串。我有我的 在我的控制器和我看来,我想做这样的事情 我已经看到了很多关于输入和ng-change调用控制器中的函数的信息,这些函数使用ng-list拆分字符串或其他内容,但在我的情况下没有任何效果。 谢谢大家。 问题答案: 您可能希望将该功能包装到过滤器中,这样就不必在所有控制器中都放置mySplit函数。例如 在这里,您可以按原先的意

  • 为什么它抛出一个错误?任何帮助都将不胜感激 编辑:

  • 问题内容: 如何将字符串中的字符随机播放(例如,hello可能是ehlol或lleoh或…)。我不想使用该方法,有没有更简单的方法? 问题答案: 我不知道更简单。但是您可以使用Math.rand()功能生成字符长度范围内的随机数,而无需替换,这将给您带来混乱的输出

  • 问题内容: 我有以下输入: 预期产量: 如何分割字符串以产生所需的输出? 问题答案: