将列表转换为元组,然后在python中将此元组添加到列表中
嗨,我希望我的输出是将列表转换为元组,然后在python中将此元组添加到列表中,python,python-3.x,Python,Python 3.x,嗨,我希望我的输出是 add_sizes(['hello', 'world']) -> [('hello', 5), ('world', 5)] 但是我越来越 add_sizes(['hello', 'world']) -> [('hello', 5), ('hello', 5, 'helloworld', 5)] 我的代码是 def add_sizes(strings): s = () t=[] m=[] for i in strings:
add_sizes(['hello', 'world']) -> [('hello', 5), ('world', 5)]
但是我越来越
add_sizes(['hello', 'world']) -> [('hello', 5), ('hello', 5, 'helloworld', 5)]
我的代码是
def add_sizes(strings):
s = ()
t=[]
m=[]
for i in strings:
x=i
for i,c in enumerate(list(x)):
t.append(c)
l=(str(''.join(t)),i+1)
s += l
m.append(s)
print(m)
如果您有任何建议,我们将不胜感激。请使用列表理解:
>>> def add_sizes(strings):
... return [(s, len(s)) for s in strings]
...
>>>
>>> add_sizes(['hello', 'world'])
[('hello', 5), ('world', 5)]
或者,如果您想在适当的位置执行此操作:
>>> def add_size(strings):
... for i, s in enumerate(strings):
... strings[i] = (s, len(s))
... return strings
...
>>> add_sizes(['hello', 'world'])
[('hello', 5), ('world', 5)]
有人已经给出了完整的解决方案,所以我也将发布我的:
def add_sizes(strings):
l = []
for string in strings:
l.append((string, len(string)))
return l
def add_sizes(strings):
return [(s, len(s)) for s in strings]
我觉得你把事情复杂化了一点。您只需要包含
strings
中每个字符串的元组以及字符串的len()
。将这些内容逐个添加到列表中,完成后返回/打印列表。您的enumerate
和l=(str('''.join(t)),i+1)
语句不是必需的问题的原因是您的s=();t=[]
(应该在循环中),但正如eugene y所说,更好的解决方案是列表理解。谢谢,它工作起来很有魅力,我不知道我们可以这样做。非常感谢!