Python 从基本列表中的两个列表中生成随机数

Python 从基本列表中的两个列表中生成随机数,python,list,random,maya,Python,List,Random,Maya,第一个函数获取曲线的所有CV并将它们放入列表中 第二个函数读取基本列表中的列表长度并生成随机数 但是我得到了这个错误 import maya.cmds as cm import random as rand def vertQuery(List = [] , *arg): myList = cm.ls(sl = True) for i in myList: List.append(cm.ls('%s.cv[:]'%i, flatten = True)) r

第一个函数获取曲线的所有CV并将它们放入列表中

第二个函数读取基本列表中的列表长度并生成随机数

但是我得到了这个错误

import maya.cmds as cm
import random as rand
def vertQuery(List = [] , *arg):
    myList = cm.ls(sl = True)
    for i in myList:
        List.append(cm.ls('%s.cv[:]'%i, flatten = True))
    return List

a = vertQuery()

def randMaker(randList = [] , x = 0 , y = 0 ,*arg):
    for i in range(len(a)):
        for j in range(len[x][y]):
            randList.append(rand.uniform(-1,1))
            y+=1
            if y == len[x][-1]:
            x+=1

b = randMaker()
#错误:第1行:“内置函数”或“方法”对象没有属性“\uuu getitem\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
#回溯(最近一次呼叫最后一次):
#文件“”,第9行,在
#文件“”,第3行,在randMaker中
#TypeError:“内置函数”或“方法”对象没有属性“\uuuu getitem\uuuuuu”\
我没有上课

有人告诉我我的剧本对不对


向您致意

您有多个
len[x]
的实例。我不知道您希望它做什么,但这会尝试将内置函数
len
视为序列或映射,并从中通过
x
索引项目。这不是你想要的。

两件事:

*内置函数或方法“对象没有属性”getitem“*是因为您正在调用len[x][y],其中x和y是整数。它正在地址[y]处的[x]中查找一个项,但x是一个整数

你的意思是你想要的项目和每个列表中的元素一样多吗?那么

# Error: line 1: 'builtin_function_or_method' object has no attribute '__getitem__'
# Traceback (most recent call last):
#   File "<maya console>", line 9, in <module>
#   File "<maya console>", line 3, in randMaker
# TypeError: 'builtin_function_or_method' object has no attribute '__getitem__' #  
还是要随机化列表中项目的顺序

randoms = [rand.uniform(-1, 1) for item in your_list_here]
其中列表和项目都是数字

如果需要为每个输入列表支持相同长度的随机列表:

def randList (lists, items):
    result = [] 
    for r in range(0, lists):
        result.append([ rand.uniform(-1, 1) for item in range (0, items)]
    return result

vertQuery
的参数是怎么回事<代码>列表有一个可变的默认值,
*arg
被忽略。我知道。它有gui。它们是用于按钮的。您的代码和解释有几个问题。首先,永远不要使用变量名列表,因为它屏蔽了内置的类定义。其次,你的问题有点模糊,所以不清楚你想做什么。这意味着所有回答的人都会猜测你需要什么,而你可以帮助他们更好地帮助你。编辑问题。PS不,你的脚本不正确,len[x][y]是对类的调用,但len不是一个具有getAttr的类我想根据基本列表中列表的长度生成随机数:如果我有一个列表,其中有两个列表,每个列表包含10个数字,我想生成10个随机数,列表1为-1,列表2为10,我有两条曲线,一个有8个cv,另一个有10个cv,,,第一个函数得到每条曲线的顶点,把它放在一个基本列表的列表中,然后我想根据每个列表的长度做一个随机数第一个是可以的,但它会做两个随机数列表中有两个列表,我需要一个代码,为这两个列表中的每一项或列表中的每一项生成代码,并将它们放入新列表中,如下面的myList=[[1,2,3,4],[5,6,7,8]]NewListHasRandomNumbersLikeMyList=[[r,r,r,r],[r,r,r,r]]定义randList(列表,项):范围内的r的结果=[]:第一个是可以的,但它是两个随机数。一个列表中有两个列表,我需要一个代码,为这两个列表中的每个项目或列表中的每个项目生成代码,并将它们放入新列表中,如下所示myList=[[1,2,3,4],[5,6,7,8]]具有随机数的新列表,如Emylist=[[r,r,r,r],[r,r,r]]你确定吗?它为基本列表中的每个列表生成两个数字1,而Allist将一个列表作为参数。map调用对'lol'(='list of lists')中的每个条目调用randList,因此如果数据是按照我使用lol=[list,list]设置的,那么它应该如图所示工作。请注意,第二个示例更改了randList的内容
def randList (lists, items):
    result = [] 
    for r in range(0, lists):
        result.append([ rand.uniform(-1, 1) for item in range (0, items)]
    return result
import random as rand
def randList(incoming_list):
  return [rand.uniform(-1,1) for item in incoming_list]

lol = [[1,2,3],[4,5,6]]
map (randList, lol)
# Result: [[0.69216923130579877, -0.14662937842796997, -0.34716966661973547], [-0.093984856291694729, 0.22759662550142301, -0.039570637016330457]] #