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

在python列表中串联一个元组的元素

马天逸
2023-03-14
问题内容

我有一个包含字符串的元组列表,例如:

[('this', 'is', 'a', 'foo', 'bar', 'sentences')
('is', 'a', 'foo', 'bar', 'sentences', 'and')
('a', 'foo', 'bar', 'sentences', 'and', 'i')
('foo', 'bar', 'sentences', 'and', 'i', 'want')
('bar', 'sentences', 'and', 'i', 'want', 'to')
('sentences', 'and', 'i', 'want', 'to', 'ngramize')
('and', 'i', 'want', 'to', 'ngramize', 'it')]

现在,我希望将一个元组中的每个字符串连接起来,以创建一个用空格分隔的字符串列表。我使用以下方法:

NewData=[]
for grams in sixgrams:
       NewData.append( (''.join([w+' ' for w in grams])).strip())

工作正常。

但是,我有超过一百万个元组的列表。所以我的问题是,这种方法是否足够有效,或者有更好的方法呢?谢谢。


问题答案:

对于大量数据,您应该考虑是否 需要
将所有数据都保留在列表中。如果您一次处理每个字符串,则可以创建一个生成器,该生成器将产生每个连接的字符串,但不会使它们全都占用内存:

new_data = (' '.join(w) for w in sixgrams)

如果您还可以从生成器中获取原始元组,则可以避免将该sixgrams列表也存储在内存中。



 类似资料:
  • 问题内容: 我有两个列表,我想按元素将它们连接起来。列表之一在连接之前要经过字符串格式化。 例如 : 在这种情况下,要进行字符串格式化。也就是说,new或应为: 最终输出应为: 有人可以告诉我该怎么做吗? 问题答案: 用途 :

  • 问题内容: 我有一个像这样的元组列表(总是成对出现): 我想找到每对中第一项的总和,即: 如何在Python中执行此操作?目前,我正在遍历列表: 我觉得必须有一种更Python化的方式。 问题答案: 与Python 2.3兼容的版本是 或在最新版本的Python中,请参见此答案。 也会做。

  • 问题内容: 我有一个字符串列表如下 我想明智地将list元素内的每个字符串连接起来,预期输出如下: 的大小可以变化。有没有任何方法可以完成此操作而无需进行for循环。 我尝试使用地图,但无法正常工作。 请帮忙。 问题答案: 这是压缩子列表并使用生成的元组进行映射的一种方法: 如docs所示,此处汇总了来自多个可迭代对象的元素。使用,我们将列表解压缩到单独的可迭代对象中,这意味着该函数将改为接收。

  • 问题内容: 例如,如果我有一个元组列表 如何解开元组并将其重新格式化为一个列表 我认为这也与功能有关,但是我真的不知道该怎么做。请赐教。 问题答案: b = [i for sub in a for i in sub] 这样就可以了。

  • 我有一个包含字符串的元组列表,例如: 现在我希望将每个字符串连接在一个元组中以创建一个以空格分隔的字符串列表。我使用了以下方法: 它工作得非常好。 然而,我的列表有超过一百万个元组。所以我的问题是,这种方法是否足够有效,或者是否有更好的方法来做到这一点。谢谢。