我有两个列表,我想将它们相互映射,但是一个列表包含1个以上的元素。所以我把它们拉在一起,但不能正常工作。在
列表如下:
a = ['TEMP', 'TEMP,PRE', 'TEMP,HUM,RAN', 'HUM']
b = ['TEM', 'BAR', 'BAO', 'RAI']
我正在努力做到:
^{pr2}$我想把b
的每一项映射到a
,但是在a
中有更多的值用,
分隔
我的代码如下:
import csv
mod1 = []
dev2 = []
d = {}
with open('/home/robi/Desktop/rob/device.csv', 'rb') as f:
next(f, None)
reader = csv.reader(f, delimiter=';')
for row in reader:
mod1.append(row[0])
dev2.append(row[1])
a = zip(dev2, mod1)
for it, key in a:
print it + '.' + key
但我得到的结果是:
BAO.TEMP,HUM,RAN
BAR.TEMP,PRE
RAI.HUM
因此BAR
和{
使用}(假设a和b的长度相同)
list comprehension
和{(这似乎比使用zip所花的时间要少一些)
zip
使用list
索引,因此它无法根据您的条件识别特定项中是否有更多项。您需要做一些后处理来构建结束列表,即用逗号将第一个列表中的元素拆分,然后将每个元素与第二个列表中的元素组合起来。比如:最后试试这个:
相关问题 更多 >
编程相关推荐