初学python,学到了列表推导式,初试身手,望大神指正
设两个列表,然后对列表内元素进行匹配,因为个人经常看F1,索性拿各车队和车手举例子
每个车队有两名车手,设为member,写上编号,同样车队team,写上对应编号,代码如下:
member = ["1.维斯塔潘和佩雷兹", "2.勒克莱尔和塞恩斯", "3.汉密尔顿和拉塞尔", "4.诺里斯和里卡多", "5.阿隆索奥康",
"6.加斯利和角田裕毅", "7.阿尔本拉迪菲", "8.博塔斯和周冠宇", "9.米克舒马赫和马格努森"]
team = ["1红牛", "3梅奔", "2法拉利", "4迈凯伦", "5雷诺", "8阿尔法罗密欧", "6小牛", "9哈斯", "7威廉姆斯"]
list = [t + ':' + m[2:] for m in member for t in team if t[0] == m[0]]
print(list)
for each in list:
print(each)
打印出来是:
['1红牛:维斯塔潘和佩雷兹', '2法拉利:勒克莱尔和塞恩斯', '3梅奔:汉密尔顿和拉塞尔', '4迈凯伦:诺里斯和里卡多', '5雷诺:阿隆索奥康', '6小牛:加斯利和角田裕毅', '7威廉姆斯:阿尔本拉迪菲', '8阿尔法罗密欧:博塔斯和周冠宇', '9哈斯:米克舒马赫和马格努森']
1红牛:维斯塔潘和佩雷兹
2法拉利:勒克莱尔和塞恩斯
3梅奔:汉密尔顿和拉塞尔
4迈凯伦:诺里斯和里卡多
5雷诺:阿隆索奥康
6小牛:加斯利和角田裕毅
7威廉姆斯:阿尔本拉迪菲
8阿尔法罗密欧:博塔斯和周冠宇
9哈斯:米克舒马赫和马格努森
但是我少写了阿斯顿马丁车队(10阿斯顿马丁,10维特尔和斯托罗尔),因为10和1的第一个元素是重合的,想了很久也试了几次也没有做出来。希望大神教我!!!