问题描述
我想将列表[bird,cake,day]
转换为[(bird,4),(cake,(day,3)]
格式的[(element,len(element))]
。
我做到了
for element in a_list:
element = tuple(element,len(element))
我该如何解决?
解决方法
您收到该错误,因为您将两个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)