Python 如何比较三种课程列表/指南
我有很多问题,发现自己完全迷恋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] 我正在为一场
问题:
如何比较三个列表?(这是否类似于“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]