我正在尝试编写一个Python程序,它计算字符串长度为2或更多的字符串数,并且给定的字符串列表中的第一个和最后一个字符是相同的.
样本清单:['abc', 'xyz', 'aba', '1221']- 预期答案是2
我有使用函数的代码,但我很想知道是否有一种更简单的方法来使用列表理解来编写它.
我写了下面的代码,但它不起作用.是因为这个问题无法解决列表理解问题,还是因为我的代码出了问题?
li=['abc', 'xyz', 'aba', '1221']
li.count(x for x in li if len(x)>1 and x[0] == x[-1])
Run Code Online (Sandbox Code Playgroud)
list.count计算列表中给定值的出现次数.更合适的是,您可以使用sum生成器理解:
li = ['abc', 'xyz', 'aba', '1221']
res = sum((len(x) >= 2) and (x[0] == x[-1]) for x in li) # 2
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为bool是int,True == 1和的子类False == 0.