有没有办法在列表列表中组合索引

时间:2017-05-04 05:00:22

标签: python list

我不知道这是否可行,到目前为止我还没有办法做到这一点。我有一个包含名称的列表列表。有些列表有2个元素,有些列表有3个[['Doe', 'John'], ['Doe', 'Jr.,', 'John']]。有没有办法在列表列表中组合索引。我可以用一个列表来完成它,但是当我在列表列表上尝试时,我收到一条错误TypeError: sequence item 0: expected str instance, list found。我试图做这样的事情:

while(len(name_list) > 2:
    indices = [0, 1]
    name_list = ['Doe', 'Jr.,', 'John']

    join_index = ' '.join([e for i, e in enumerate(name_list) if i in indices])
    print(join_index)

2 个答案:

答案 0 :(得分:1)

因此,您似乎正在尝试将名称组合起来(最后,第一个)来制作更复杂的东西。

此代码将组合除子列表的最后一个元素之外的所有元素:

<强>代码:

names = [['Doe', 'John'], ['Doe', 'Jr.,', 'John']]
print(names)

new_list = [[' '.join(n[:-1]), n[-1]] for n in names]
print(new_list)

<强>结果:

[['Doe', 'John'], ['Doe', 'Jr.,', 'John']]

[['Doe', 'John'], ['Doe Jr.,', 'John']]

答案 1 :(得分:0)

这是最终答案

length = (len(names))

j=0
while j < length:

    if len(names[j]) > 3:
        names[j][0] = ''.join((names[j][0], ' ', names[j][1]))
        del(names[j][1])
        #print(names[j])
        j += 1
    else:
        #print('3 or less')
        j += 1