结合两个元素python

时间:2013-06-03 23:29:33

标签: python list dictionary combinations

我有一个列表,名为stations = []

打印出来
 ['france', 'england', 'germany', 'china', 'paris', 'sydney', 'gold coast', 'canberra', 'perth', 'melbourne']

我还有另一个功能x,当打印时。

[0.0, 3043.004178666758, 21558.2996208357, 40246.748450913066, 40908.82213277263, 43786.0579097594, 67781.1426515405, 79693.11338661514, 65046.35819797423, 92804.01912347642]

我有两个问题。

首先)是否有办法将两者结合起来,所以我可以打印一个新的列表或打印功能

[france = 0.0, england = 3043.004, germany = 21558.2999] and so on

其次我可以创建变量或列表或者某些东西,使得france保持值= 0.0,这样如果后来产生0.0,我可以调用france和france变量中的任何数据吗?

1 个答案:

答案 0 :(得分:5)

dictzip

一起使用
>>> lis1 = ['france', 'england', 'germany', 'china', 'paris', 'sydney', 'gold coast', 'canberra', 'perth', 'melbourne']
>>> lis2 = [0.0, 3043.004178666758, 21558.2996208357, 40246.748450913066, 40908.82213277263, 43786.0579097594, 67781.1426515405, 79693.11338661514, 65046.35819797423, 92804.01912347642]
>>> dic = dict(zip(lis1,lis2))
>>> dic 
{'canberra': 79693.11338661514,
 'china': 40246.748450913066,
 'england': 3043.004178666758,
 'france': 0.0,
 'germany': 21558.2996208357,
 'gold coast': 67781.1426515405,
 'melbourne': 92804.01912347642,
 'paris': 40908.82213277263,
 'perth': 65046.35819797423,
 'sydney': 43786.0579097594}

# Fetching values
>>> dic['france']
0.0
>>> dic['sydney']
43786.0579097594

打印键和值:

>>> for k,v in dic.iteritems():
        # k points to the key, and v points to the value
        if v < distance:
            print k,"is less than", distance
        else:    
            print k,"is greater than or equal to",distance
...         
england is greater than or equal to 1000
canberra is greater than or equal to 1000
paris is greater than or equal to 1000
france is less than 1000
melbourne is greater than or equal to 1000
germany is greater than or equal to 1000
sydney is greater than or equal to 1000
china is greater than or equal to 1000
gold coast is greater than or equal to 1000
perth is greater than or equal to 1000