将字符串列表转换为元组列表

问题描述

我想将列表[bird,cake,day]转换为[(bird,4),(cake,(day,3)]格式的[(element,len(element))]

我做到了

for element in a_list:
    element = tuple(element,len(element))

但是获取tuple()最多会带来1个参数(给定2个)错误

我该如何解决

解决方法

您收到该错误,因为您将两个args传递给tuple(),这应该可以工作:

[tuple((element,len(element))) for element in a_list]

或更短:

[(element,len(element)) for element in a_list]
,
lst1 = ['bird','cake','day']
lst2 = [(i,len(i)) for i in lst1]
print(lst2)

OUT:

[('bird',4),('cake',('day',3)]
,

我假设您的a_list是字符串。这行得通。

a_list = ["bird","cake","day"]
new_list = []

for element in a_list:
    new_list.append([element,len(element)])

print(new_list)

[['bird',4],['cake',4],['day',3]]

您的代码无法正常运行的原因是您在for循环中更新了element引用。对a_list中的值的引用不同。

,

使用列表理解功能尝试此操作:

element = ["bird","day"]
new_list = [(i,len(i)) for i in element]
print(new_list)