gpt4 book ai didi

python - 如何遍历列表中的每个字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:14 24 4
gpt4 key购买 nike

我试过这段代码,但它只对列表中的第一个字符串执行函数:

返回给定字符串列表的第一个和最后两个字符

def both_ends(list):
finalList = []
for s in list:
if s > 2:
return s[0] + s[1] + s[-2] + s[-1]
else:
return s

finalList.append(s)
return finalList

list = ('apple', 'pizza', 'x', 'joke')
print both_ends(string)

如何让这个函数遍历列表中的所有字符串?

最佳答案

是的,那是因为你是直接返回结果,所以它在你遍历第一个字符串本身之后返回。相反,您应该将结果放在您创建的 finalList 中,并在最后返回结果。

还有一些其他的东西-

  1. 正如在另一个答案中所说,您想检查字符串的长度。

  2. 字符串的长度应该大于 4 ,否则,您最终会多次添加一些字符。

  3. 不要为变量使用像list 这样的名称,它最终会隐藏内置函数,因此您将无法使用list() 来创建之后列出。

  4. 最后一个问题是你应该用你的列表调用你的函数,而不是 string

例子-

def both_ends(list):
finalList = []
for s in list:
if len(s) > 4:
finalList.append(s[:2] + s[-2:])
else:
finalList.append(s)
return finalList

更简单的方法 -

def both_ends(s):
return s[:2] + s[-2:] if len(s) > 4 else s

lst = ('apple', 'pizza', 'x', 'joke')
print map(both_ends, lst) #You would need `list(map(...))` for Python 3.x

演示 -

>>> def both_ends(s):
... return s[:2] + s[-2:] if len(s) > 4 else s
...
>>> lst = ('apple', 'pizza', 'x', 'joke')
>>> print map(both_ends, lst)
['aple', 'piza', 'x', 'joke']

甚至是列表理解,尽管对我来说这会降低可读性 -

[s[:2] + s[-2:] if len(s) > 4 else s for s in lst]

演示 -

>>> lst = ('apple', 'pizza', 'x', 'joke')
>>> [s[:2] + s[-2:] if len(s) > 4 else s for s in lst]
['aple', 'piza', 'x', 'joke']

关于python - 如何遍历列表中的每个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com