我有下面一个纸牌游戏的代码,它应该从给定的牌列表中删除N个汽车,并返回一个包含2个列表的元组,第一个列表是原始列表中的N个对象,第二个列表是未从原始列表中提取的剩余牌
lista_cartas = [1,2,3,4,5,6,7,8]
lista_N = []
N = 5
for i in range(N):
extracto = lista_cartas.pop(0)
lista_N.append(extracto)
lista_final = [lista_N, lista_cartas]
print(tuple(lista_final))
([1, 2, 3, 4, 5], [6, 7, 8])
这是我想要的,但我需要把它转换成一个函数,以N个数和列表作为参数,我如何实现这一点
这是有效的吗?或者如何使函数获取列表
def sacar_cartas(N, lista=[]):
for i in range(N):
extracto = lista_cartas.pop(0)
lista_N.append(extracto)
lista_final = [lista_N, lista_cartas]
print(tuple(lista_final))
简单转换:
稍微修改了代码,这样函数就不会改变传入的列表(因为lista_cartas.copy()调用)。至于代码和问题,Python函数可以接受列表作为变量,而不告诉它是列表
您可以使用list slices完全返工您的解决方案:
这样
sacar_cartas(lista_cartas, 5)
会导致tuple
:注意我们如何通过返回逗号分隔的值来避免显式的
tuple
调用相关问题 更多 >
编程相关推荐