在列表中提取(两个)长度字符元素

时间:2014-06-04 03:31:14

标签: python-3.x

对不起,伙计们看起来好像把我的循环放在功能中。

这是我的for循环t查看列表并打印出' 2' lenth中的字符。 我试着看一个函数是否也能做到这一点。

listo = ['esto', 'es', 'un', 'poco', 'dificil', 'y', 'si']

for fun in listo:    
    x = fun.strip()
    if len(x) == 2:
            print (x)#Yes extra indentation


   output=es
          un
          si

将其变成一个功能:

listo = ['esto', 'es', 'un', 'poco', 'dificil', 'y', 'si']

def func():
    a = listo.strip()
    if len(a) <=2:
        print(a)

但是&#39; strip&#39;不起作用,所以我删除它,让它寻找     如果len(a)&lt; = 2 现在没有错误,但它也不起作用。我在这里想念的是什么,什么是&#39; strip&#39;在一个功能? 谢谢。

3 个答案:

答案 0 :(得分:0)

您的strip()似乎取代了非常需要的for循环。

相反,请将其替换为for循环:

def func(lst):
    for a in lst:
        if len(a) <=2:
            print(a)

此外,您的1 st 示例毫无意义。你有一个名为list的列表(不要这样做,它会影响内置内容),然后你循环遍历stuff ,它会引发no错误?此外,在2 nd 示例中,您有list.strip()会引发错误。

答案 1 :(得分:0)

listo = ['esto', 'es', 'un', 'poco', 'dificil', 'y', 'si']

def func():
    for line in listo:
        aa = line.strip()
        if len(aa) ==2:
                print(aa)

谢谢大家,我不知道为什么我不将for循环放在函数中..

答案 2 :(得分:0)

def strip(n='Hello, world!',x=' '):
  if type(x) == "<class 'str'>":
    x = [x]
  for i in x:
    l = ''
    r = n.split(i) # If not working, use r = series.n.split(i) or r = pd.series.n.split(i), and import pandas as pd.
    for j in r:
      l += j
    n = l
  return n

这类似于 print(strip('Hello, world!',[',',' ','!']))。它将第一个参数 (Hello, world!) 去掉第二个参数中的所有元素(空格、逗号和感叹号),得到 Helloworld