Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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/4/kotlin/3.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洗牌列表不工作_Python - Fatal编程技术网

Python洗牌列表不工作

Python洗牌列表不工作,python,Python,我是python新手。从C++背景来看,我很讽刺地理解了这种语言的简单性,更不用说如何闲置工作了。p> 无论如何,我需要编写一个简单的函数,它接受一个列表并返回一个新列表,其中的元素被洗牌 这就是我目前所拥有的 import random def shuffle(): aList = [] i = 0 for i in range(0, 5): elements = input(": ") aList.append(elements)

我是python新手。从C++背景来看,我很讽刺地理解了这种语言的简单性,更不用说如何闲置工作了。p> 无论如何,我需要编写一个简单的函数,它接受一个列表并返回一个新列表,其中的元素被洗牌

这就是我目前所拥有的

import random
def shuffle():
    aList = []
    i = 0
    for i in range(0, 5):
        elements = input(": ")
        aList.append(elements)

    shuffleList = random.shuffle(aList)
    return shuffleList


shuffle()
在我输入元素(本例中为数字)后,没有任何输出。。所以出于某种原因,shuffleList没有出现在那里。有什么想法吗

将列表洗牌到位,其输出为
None

由于您将其输出存储并返回到
shufflist=random.shuffle(aList)
,因此不会打印任何内容

因此,请将
aList
返回:

import random
def shuffle():
    aList = []
    i = 0
    for i in range(0, 5):
        elements = input(": ")
        aList.append(elements)
    random.shuffle(aList)
    return aList

random.shuffle()
将列表重新排序到位,但不返回任何结果。

random.shuffle
是一种到位操作,它不返回任何内容

>>> l
[0, 1, 2, 3, 4]

>>> random.shuffle(l)
>>> l
[0, 3, 1, 4, 2]
工作,这意味着它更新提供的参数,而不是返回值(默认值除外,
None
)。在C++中,您需要传递一个引用到列表中(例如,代码> int *<代码> >,但是在Python中,这种区别并不存在。

所以,实际上您正在将
shuffleList
设置为
None
,然后返回它

您可以通过使用
print
在完成后实际显示结果来确认这一点-据我所知,仅从函数返回值不会输出任何内容:

results = shuffle()
print results
要修复它,只需返回
aList
,而不是将结果存储在另一个变量中:

random.shuffle(aList)
return aList

Shuffle会对列表进行洗牌,但不会返回新列表。试试这个:

import random

def shuffle():
    aList = []

    for i in range(0, 5):
        elements = input(": ")
        aList.append(elements)

    random.shuffle(aList)
    return aList

print shuffle()

你不需要在循环之前初始化迭代变量。如果IDLE不适合你,就不用麻烦了。一定要安装IPython,因为IPython控制台远远优于默认的REPL。我会选择Sublime。更美观,更实用。我必须使用空闲,因为这是学校的要求。我不喜欢这样的事实,我必须在shell中调用函数,而不是只按run。您正在打印无法工作的函数。返回该列表就足够了。我相信这就是问题所在。我在反对票开始滚滚而来之后加上了这张照片,顺便说一句,这会奏效的。你们只是在打印一张清单,真的吗?为什么会有反对票?这个很好用!
import random

def shuffle():
    aList = []

    for i in range(0, 5):
        elements = input(": ")
        aList.append(elements)

    random.shuffle(aList)
    return aList

print shuffle()