Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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_Maya - Fatal编程技术网

Python 如何从列表中选择随机值?

Python 如何从列表中选择随机值?,python,maya,Python,Maya,我正试图从下面的列表中选择一项,但我的list=RN.choicexyz当前正在选择xyz列表中的所有内容,所以你们能给我一个解决方法的提示吗 import maya.cmds as MC import pymel as pm import random as RN MC.polySphere(cuv=10, sy=20, ch=1, sx=20, r=1, ax=(0, 1, 0), n='BALL') MC.selectMode( q=True, component=True ) list

我正试图从下面的列表中选择一项,但我的list=RN.choicexyz当前正在选择xyz列表中的所有内容,所以你们能给我一个解决方法的提示吗

import maya.cmds as MC
import pymel as pm
import random as RN

MC.polySphere(cuv=10, sy=20, ch=1, sx=20, r=1, ax=(0, 1, 0), n='BALL')
MC.selectMode( q=True, component=True )
listVert= MC.polyEvaluate(v=True)
print listVert
RandomSelection = []
for i in range (0,listVert):
    RNvert = RN.uniform(0,listVert)    
    xyz = [round(RNvert,0)]
    list = RN.choice(xyz)
    print list
    print xyz
MC.select('BALL.vtx[???]')
obj=MC.ls(sl=True)
print obj
allComponents = MC.ls( sl=True, fl=True ) 
print allComponents
shapeName = MC.polyListComponentConversion(obj, fv=True)[0]
objectName = MC.listRelatives(shapeName, p=True)[0]
    print "Object name is:"
    print objectName

随机数将取代???选择球体上的随机顶点。

看起来您只是在尝试从球体中选择随机顶点? 这实际上是直截了当的。我会避免使用random.uniform,因为它会给你一个浮点数,只需使用random.randint即可

要将随机顶点连接到“?”,只需使用基本字符串连接将其缝合在一起

以下是创建球体并选择随机顶点的示例:

import maya.cmds as cmds
import random

sphere, psphere = cmds.polySphere()  # Create a sphere
vert_count = cmds.polyEvaluate(sphere, v=True)  # Get the sphere's vertex count.
random_vert = random.randint(0, vert_count)  # Pick a random index from the vertex count.
cmds.select(sphere + ".vtx[" + str(random_vert) + "]")  # Concatenate strings.
#cmds.select("{}.vtx[{}]".format(obj, random_vert))  # Can also use `format` instead.

如果这不是您想要的,请编辑您的帖子,并清楚地解释您希望输出的内容。

您的xyz列表只有一项roundRNvert,0。从单个项目列表中随机选择项目将始终返回相同的项目。谢谢。我去掉了for循环,xyz返回一个数字。现在我如何用???自从位于“字符串”中,不确定您要执行的操作。请尝试避免list=,list已经是python中的函数。把这个用作变量真是个坏主意。否则,你能解释一下你的剧本的目的是什么吗