社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在依赖于前面元素的python中创建列表

mradey • 6 年前 • 1829 次点击  

我正在学习python,现在正在学习列表理解。我正在做一个问题,要求生成一个n个元素的列表,其中每个内部列表中的第一个元素表示其索引,下一个n-2元素是介于1和10之间的随机数,最后一个元素是值大于5的前n-2元素的和。例如,一个样本

[[0, 5, 10, 3, 10], [1, 7, 3, 7, 14], [2, 2, 9, 5, 9]]

我用来生成上面输出的代码是

import random
SUM = 0
def genRandNum():
    global SUM
    x = random.randint(1,10)
    if(x > 3):
        SUM = SUM + x
    return x

def finalEle():
    global SUM
    ret = SUM
    SUM = 0
    return ret

INNER_LIST_SIZE = 5
OUTER_LIST_SIZE = 3
li = [[y if x == 0
         else finalEle()if x == INNER_LIST_SIZE - 1
         else genRandNum()
         for x in range(INNER_LIST_SIZE)] for y in range(OUTER_LIST_SIZE)]
print(li)

但是,像Java这样的语言,我倾向于把我的代码写在下面的脚本:

import random
SUM = 0
THRESHOLD = 5
INNER_LIST_SIZE = 5
OUTER_LIST_SIZE = 3
li = []
for y in range(OUTER_LIST_SIZE):
    innerLi = []
    for x in range(INNER_LIST_SIZE):
        if x == 0:
            innerLi.append(y)
        elif x == INNER_LIST_SIZE-1:
            innerLi.append(SUM)
        else:
            rand = random.randint(1,10)
            innerLi.append(rand)
            if rand > THRESHOLD:
                SUM += rand
    li.append(innerLi)
    SUM = 0
print(li)

从Python的角度来看,这些解决方案中的哪一个看起来更适合解决问题?它们中有一个是我应该如何处理这个问题的,如果不是的话,我可以使用其他哪些Python工具来处理这个问题?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38909
 
1829 次点击  
文章 [ 4 ]  |  最新文章 6 年前