这是(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
我该怎么做,并告诉我是否存在相同功能的内置函数
答案 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))