Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将int和list连接在一起?_Python_Tail Recursion - Fatal编程技术网

Python 如何将int和list连接在一起?

Python 如何将int和list连接在一起?,python,tail-recursion,Python,Tail Recursion,但是我在互联网上的任何地方都找不到join函数。主要问题是headitems是int,tailitems是list,我不能将head和tail组合在一起。以下是我尝试的代码: def head(items): return items[0] def tail(items): return items[1:] def isEven(x): return x % 2 == 0 def extractEvens(items): if (item

但是我在互联网上的任何地方都找不到join函数。主要问题是headitems是int,tailitems是list,我不能将head和tail组合在一起。以下是我尝试的代码:

def head(items):  
    return items[0]  
def tail(items):
    return items[1:]  
def isEven(x):  
     return x % 2 == 0  
def extractEvens(items):  
    if (items == None):  
        return None  
    elif (isEven(head(items))):  
        return join(head(items),extractEvens(tail(items)))  
    else:  
        return extractEvens(tail(items)) 



a = [4,2,5,2,7,0,8,3,7]  
print(extractEvens(a))  
下面是我试图研究的页面的链接:这是过滤器模式的代码:
请提供所需输出的示例

如果要创建新列表,将列表与int合并,则应为:

返回[主项目]+尾项目 你需要的是追加

在这里,您不能将列表和int缩进:

>>> a=6
>>> b=[1,2,3,4]
>>> a+b
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'list'
>>> list(a)+b
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
您还可以尝试插入,因为头部必须位于起始位置,因此插入更有用

l = extractEvens(tail(items))
l.insert(0,head(items))
return l

您的代码中有多个错误:

def isEven(x):
    return x % 2 == 0 # x % 2 not x % ==


def extractEvens(items):
    if not items:
        return [] # return empty list not None
    elif isEven(head(items)):
         # convert ints to strings and put head(items) in a list 
        return "".join(map(str,[head(items)]) + map(str,extractEvens(tail(items)))) 
    else:
        return extractEvens(tail(items))
您也可以在单个列表中执行此操作:

a = [4, 2, 5, 2, 7, 0, 8, 3, 7]
print("".join([str(x) for x in a if not x % 2]))

也许您应该从开始。提示1:您可以使用+,将两个列表添加到一起。提示2:您可以使用[some_number]。,'创建一个包含单个整数的列表。JointailItem看起来像是一个试图使用python的LISP程序员……我知道,但是如果我将headitems设置为一个包含1 int的列表,那么even命令将无法工作。所需的输出是一个包含从输入列表中提取的偶数的列表。例如,y=[1,2,3,4,5,6,7]extractEvensy>>>[2,4,6]我想将一个项目的列表浓缩为头部,并与列表的其余部分重复。我试图学习尾部递归。否则我会做循环。所需的输出是从输入列表中提取偶数的列表。例如,y=[1,2,3,4,5,6,7]extractEvensy>>>[2,4,6]
def isEven(x):
    return x % 2 == 0 # x % 2 not x % ==


def extractEvens(items):
    if not items:
        return [] # return empty list not None
    elif isEven(head(items)):
         # convert ints to strings and put head(items) in a list 
        return "".join(map(str,[head(items)]) + map(str,extractEvens(tail(items)))) 
    else:
        return extractEvens(tail(items))
a = [4, 2, 5, 2, 7, 0, 8, 3, 7]
print("".join([str(x) for x in a if not x % 2]))