Python 如何比较三种课程列表/指南

Python 如何比较三种课程列表/指南,python,python-3.x,Python,Python 3.x,我有很多问题,发现自己完全迷恋python。 问题: 如何比较三个列表?(这是否类似于“y中的x”) [1,a,aa] [2,b,bb] [3,c,cc] 例如: list1 = [1,2,3] list2 = [a,b,c] list3 = [aa,bb,cc] [1,a,aa] [2,b,bb] [3,c,cc] 输出: [1,a,aa] [2,b,bb] [3,c,cc] 我正在为一场

我有很多问题,发现自己完全迷恋python。
问题:
如何比较三个列表?(这是否类似于“y中的x”)

[1,a,aa]   [2,b,bb]    [3,c,cc]
例如:

list1 = [1,2,3]               
list2 = [a,b,c]                
list3 = [aa,bb,cc]   
[1,a,aa]   [2,b,bb]    [3,c,cc]
输出:

[1,a,aa]   [2,b,bb]    [3,c,cc]
我正在为一场比赛创建一个模拟,1=车辆,a=驾驶员,aa=赞助商 我得到了一个公式,里程表\英里=里程表\英里+速度*时间,并且在选择获胜者之前,上限为500英里。我想出了一个骨架:

[1,a,aa]   [2,b,bb]    [3,c,cc]
import random

class Car():


    def __init__(self):
       self.__name = [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]
       self.__sponsor = [aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm,nn,oo,pp,qq,rr,ss,tt]
       self.__vehicle = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

    def __str__(self):
       (when cap of 500 miles is reached)
           print "winner", driver,sponsor,vehicle


    def odometer(self):
       speed = random.randrange(1, 180)
       time = 60
       odometer_miles = speed * time


    def main():

         main()
我张贴代码寻求指导,我的问题是;我是否用python正确地构造了代码,以获得预期的结果。在这种情况下,什么样的胆量才是最熟练的呢

[1,a,aa]   [2,b,bb]    [3,c,cc]

我使用的是Python-3.x

您可以使用
zip()
函数逐列重新组合多个列表:

[1,a,aa]   [2,b,bb]    [3,c,cc]
output = list(zip(list1, list2, list3))
如果您只需在每个组合上循环,请在循环中直接使用它:

[1,a,aa]   [2,b,bb]    [3,c,cc]
for vehicle, driver, sponsor in zip(self.__vehicle, self.__name, self.__sponsor):
    # do something with the three columns.

您可以使用
zip()
函数逐列重新组合多个列表:

[1,a,aa]   [2,b,bb]    [3,c,cc]
output = list(zip(list1, list2, list3))
如果您只需在每个组合上循环,请在循环中直接使用它:

[1,a,aa]   [2,b,bb]    [3,c,cc]
for vehicle, driver, sponsor in zip(self.__vehicle, self.__name, self.__sponsor):
    # do something with the three columns.
鉴于这三份清单:

[1,a,aa]   [2,b,bb]    [3,c,cc]
list1 = [1,2,3]               
list2 = ['a','b','c']                
list3 = ['aa','bb','cc'] 
zip()
函数(或者更好)将组合它们,例如每个列表的第一项被分组,然后是第二项,依此类推:

[1,a,aa]   [2,b,bb]    [3,c,cc]
>>> for item in zip(list1, list2, list3):
...     print item
... 
(1, 'a', 'aa')
(2, 'b', 'bb')
(3, 'c', 'cc')


# `izip` is more "memory efficient" (no a problem here thought)

>>> from itertools import izip
>>> for item in izip(list1, list2, list3):
...     print item
... 
(1, 'a', 'aa')
(2, 'b', 'bb')
(3, 'c', 'cc')

另一方面,如果希望所有组合包含列表1的一项、列表2的一项等,则需要:

[1,a,aa]   [2,b,bb]    [3,c,cc]
最后一个在您的特定情况下可能有用,因为它允许您模拟驾驶员/车辆/赞助商的所有可能组合。

给出三个列表:

[1,a,aa]   [2,b,bb]    [3,c,cc]
list1 = [1,2,3]               
list2 = ['a','b','c']                
list3 = ['aa','bb','cc'] 
zip()
函数(或者更好)将组合它们,例如每个列表的第一项被分组,然后是第二项,依此类推:

[1,a,aa]   [2,b,bb]    [3,c,cc]
>>> for item in zip(list1, list2, list3):
...     print item
... 
(1, 'a', 'aa')
(2, 'b', 'bb')
(3, 'c', 'cc')


# `izip` is more "memory efficient" (no a problem here thought)

>>> from itertools import izip
>>> for item in izip(list1, list2, list3):
...     print item
... 
(1, 'a', 'aa')
(2, 'b', 'bb')
(3, 'c', 'cc')

另一方面,如果希望所有组合包含列表1的一项、列表2的一项等,则需要:

[1,a,aa]   [2,b,bb]    [3,c,cc]
最后一个可能在您的特定情况下很有用,因为它允许您模拟驾驶员/车辆/赞助商的所有可能组合

[1,a,aa]   [2,b,bb]    [3,c,cc]