Function 将列表返回给函数
上面的代码-正确打印2到25之间的100个随机数字,但向函数返回“无”。在下面的代码中,我如何将100个随机数字的列表返回给函数Function 将列表返回给函数,function,list-comprehension,Function,List Comprehension,上面的代码-正确打印2到25之间的100个随机数字,但向函数返回“无”。在下面的代码中,我如何将100个随机数字的列表返回给函数 import random def genList1(): list1 = [x for x in range(100)] count = 0 for count in list1: print(random.randint(2,25), end = " ") return def main(): p
import random
def genList1():
list1 = [x for x in range(100)]
count = 0
for count in list1:
print(random.randint(2,25), end = " ")
return
def main():
print(genList1())
main()
我尝试了一些不同的修改,例如在打印前添加返回到(随机…),以及尝试将打印(随机…)分配给一个变量,然后返回该变量…但没有效果
import random
def genList1():
list1 = [x for x in range(100)]
count = 0
for count in list1:
random.randint(2,25)
return list1
def genList2():
list1 = genList1()
list2 = [x**2 for x in list1 if x % 2 == 0]
return list2
def genList3():
list2 = genList2()
list3 = [0.5*x for x in list2]
return list3
def genSum1_2():
list2 = genList2()
list3 = genList3()
sum1 = 0
number1 = 0
for number1 in list2:
sum1 = sum1 + number1
sum2 = 0
number2 = 0
for number2 in list3:
sum2 = sum2 + number2
return sum1, sum2
def main():
print("Here is List 1, which contains 100 random digits between 2 and 25: ")
print(genList1())
print(), print()
print("Here is List 2, which is the cubes of all the even digits in List 1: ")
print(genList2())
print(), print()
print("Here is List 3, which is all the digits in List 2 divided in half: ")
print(genList3())
print(), print()
print("Here is the sum of the digits in List 2, and digits in List 3: ")
print(genSum1_2())
main()
或者,如果您希望它的行为更像您的原始代码
import random
def getRandList():
return [random.randint(2,25) for x in xrange(100)]
print getRandList()
编辑(解释以下评论中的问题):
如果你想重复使用列表中的随机数,你有几个选择
选项1:最佳选项
将列表作为参数传递给后续函数
import random
def genList1():
randlist = [random.randint(2,25) for x in xrange(100)]
for elem in randlist:
print(elem, end = ' ')
return randlist
def main():
print(genList1())
main()
选项2:这将是糟糕的编程实践
如果您想成为团队中其他人不喜欢的开发人员,您可以经常这样做:
def genList2(input_list):
list2 = [x**2 for x in input_list if x % 2 == 0]
return list2
def main():
list1 = genList1()
list2 = genList2(list1)
如果我打印它,它会更改每个函数的列表…我如何调用最初生成的相同列表1???(参考具有多于1个功能的主代码)
def genList1():
global randlist
randlist = [random.randint(2,25) for x in xrange(100)]
for elem in randlist:
print(elem, end = ' ')
return randlist
def genList2():
list2 = [x**2 for x in randlist if x % 2 == 0]
return list2
def main():
list1 = genList1()
list2 = genList2()