将列表的长度存储在python3中的其他列表中

时间:2018-09-27 03:40:27

标签: python python-3.x list

这是(3,3)列表:

Names = [['ayushi','bhumi','aman'],['aakriti','ankur','saxena'],['preeti','chhavi','vicky']]

我想将每个元素的长度存储在不同的(3,3)列表中。  我为此使用了以下代码:

length=[]

for i in Names:

    for j in i:

        length.append(len(j))

但是我得到的输出低于此值:

[6, 5, 4, 7, 5, 6, 6, 6, 5]

所需的输出是:

654

756

665

我该怎么做,并告诉我是否存在相同功能的内置函数

2 个答案:

答案 0 :(得分:2)

您可以尝试以下列表理解:

length = [''.join([str(len(i)) for i in l]) for l in Names]

哪个给你:

>>> length
['654', '756', '665']

如果需要,可以在使用int之后将其转换为map

>>> list(map(int, length))
[654, 756, 665]

如果我误解了您的问题,而您想要一个由3个列表组成的列表,则可以执行以下操作:

length = [[len(i) for i in l] for l in Names]

>>> length
[[6, 5, 4], [7, 5, 6], [6, 6, 5]]

答案 1 :(得分:0)

Names = [['ayushi','bhumi','aman'],['aakriti','ankur','saxena'],['preeti','chhavi','vicky']]

length=[]
for i in Names:
    str_len_list = []
    for j in i:
        str_len_list.append(str(len(j)))
    length.append(''.join(str_len_list))