首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用3个列表来迭代并将数据存储在python的第4个列表中。

尝试使用3个列表来迭代并将数据存储在python的第4个列表中。
EN

Stack Overflow用户
提问于 2018-03-16 17:35:23
回答 1查看 30关注 0票数 0

我会尽我所能解释这件事。我有4个列表,每个列表的长度都是可变的。我希望通过list1中的listxlistylistz中的每个元素获得输入。

从本质上说,创建一个循环通过另一个循环,所以对于alistx中,位置1listy中,位置1listz中,这就是您想要存储的数据。

然后循环返回a中的listx1listy中的位置,以便在listz中定位2并获取这些数据。然后再次循环alistx中,在listy中定位2,在listz中定位1等等。

代码语言:javascript
复制
listx = [a,b,c,d,e,f,g,h,i,j,k,l]
listy = [1,2,3,4]
listz = [1,2]
list1 = [[0*5],[0*5]]

def getListData():
    for pos in range(len(listx)):
        for pos in range(listy):
            for pos in range(listz): 
                list1 = input("Enter the number for position %s in pos %s in list %s" % (listz[pos], listy[pos], listx[pos]))    

这是我尝试过的,但没有成功。我也试过用拉链,但我也没能让它起作用。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-16 18:20:10

你其实很亲密,但犯了一些简单的错误。首先,您不需要在一开始就设置list1等于任何特殊的东西;空列表就可以了。接下来,在嵌套循环的所有层中使用pos作为变量。如果你指的是不同的东西,那就用不同的名字吧。最后,您使用list1 =而不是list1.append()。使用=将清除list1的值,并将其设置为=标志另一端的任何值;append将添加到列表中,这似乎是您想要的。

另外,我用几种方式使代码更多的是奏鸣曲。现在它只是一个字符串,而不是listx的一个字符列表,因为字符串是可迭代的。我用的是for x in iterable成语,而不是更冗长的for x in range(len(iterable))。这些都不是错误本身,但我认为我产生的代码更好。

代码语言:javascript
复制
listx = 'abcdefghijkl'
listy = [1,2,3,4]
listz = [1,2]
list1 = []

def getListData():
    for x in listx:
        for y in listy:
            for z in listz: 
                list1.append(input("xvalue: {}, yvalue: {}, zvalue: {}".format(x, y, z)) 

需要注意的是:如果您期望输入是整数,则可能需要尝试int(input()) (即将结果转换为int)。默认情况下,它被解释为字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49326545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档