在python中从列表中选择一些项目:请解释为什么这不起作用

在python中从列表中选择一些项目:请解释为什么这不起作用,python,Python,我想选择列表的前4项,以便创建一个4位数字。但我做不到。请帮帮我 import random numbers = [0,1,2,3,4,5,6,7,8,9] random.shuffle(numbers) def sayi(s): s[0:4] return s print sayi(numbers) 您应该返回切片数组,但返回的是整个数组。Slice不会修改原始数组中的项目,它会创建新数组。问题在于此行:s[0:4] 你在这里所做的实际上是创建一个新的列表,并丢失你在原始列

我想选择列表的前4项,以便创建一个4位数字。但我做不到。请帮帮我

import random
numbers = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(numbers)
def sayi(s):
    s[0:4]
    return s

print sayi(numbers)

您应该返回切片数组,但返回的是整个数组。Slice不会修改原始数组中的项目,它会创建新数组。

问题在于此行:
s[0:4]


你在这里所做的实际上是创建一个新的列表,并丢失你在原始列表中所做的所有事情。你应该像这样返回你已经处理过的列表:
返回s[0:4]

s[0:4]
将创建一个新列表,它不会修改
s
。所以,你需要返回切片列表。我看到了。非常感谢。另外,您无需指定0,只需说
返回s[:4]
import random
numbers = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(numbers)
def sayi(s):
    return s[0:4]

print sayi(numbers)