根据项目的长度合并python列表中的一些条目

时间:2017-05-23 05:05:50

标签: python-3.x

我有一个关于20-30项[strings]的列表。

我能够在我的程序中将它们打印得很好 - 但我想节省一些空间,并合并更短的项目...

所以基本上,如果我2 consecutive items组合长度小于30,我想将这些项目作为列表中的单个条目加入 - 它们之间有/

我没有想出一个简单的方法。

如果我在同一个列表中这样做,我就不在乎,或者制作一个新的项目列表......这一切都发生在1 function ...

3 个答案:

答案 0 :(得分:1)

您需要遍历列表并继续加入项目,直到满足您的要求(大小30)。然后在元素增长时将它们添加到新列表中。

l=[] # your new list
buff=yourList[0] if len(yourList)>0 else "" # hold strings till they reach desired length
for i in range(1,len(yourList)):
    # check if concatenating will exceed the size or not
    t=yourList[i]
    if (len(buff) + len(t) + 1) <= 30:
        buff+="/"+t
    else:
        l.append(buff)
        buff=t
l.append(buff) # since last element is yet to be inserted

答案 1 :(得分:0)

您可以extend列表方法如下:

a = [1,2,3]
b = [4,5,6]

a.append('/')
a.extend(b)

您只需根据自己的要求检查两个列表a and b的大小。

我希望我明白你的问题!

答案 2 :(得分:0)

这段代码对我有用,你可以检查一下你是否想要它,它有点长,但它有效。

for w in word:
     for file in file_list:
         if w in file:
             print file