Skip to main content
 首页 » 编程设计

python之如何使用循环使一个列表中的元素等于另一个列表中的元素

2025年05月04日14bhlsheji

所以我试图定义一个函数,以便列表的元素

元素 = ['H', 'N', 'C', 'O'] 等于另一个列表中相同位置的元素

摩尔质量 = [1.00794, 14.0067, 12.0107, 15.9994]

因此 H = 1.00794,N = 14.0067,等等。

编辑: 试图定义一个函数示例: 元素摩尔质量(elementSymbol) 使用时会像这样 元素摩尔质量('H') 它返回第一个列表中的相应元素,并与另一个列表中位于相同位置的元素匹配 1.00794。 甚至不知道如何开始。

请您参考如下方法:

你可以用字典理解来绑定(bind)它们

    elements = ['H', 'N', 'C', 'O'] 
    molarMass = [1.00794, 14.0067, 12.0107, 15.9994] 
 
    ElementToMolar = {elements[x]:molarMass[x] for x in range(len(elements))} 
 
    for x in ElementToMolar: 
        print (x, ElementToMolar[x]) 
 
Which outputs: 
 
    O 15.9994 
    H 1.00794 
    N 14.0067 
    C 12.0107 

或者,如果您想通过操作对其进行抽象并进一步使用/与数据交互,可能应该使用一个类?

elements = ['H', 'N', 'C', 'O'] 
molarMass = [1.00794, 14.0067, 12.0107, 15.9994] 
 
class Element(object): 
    def __init__(self, Name, Mass): 
        self.Name = Name 
        self.Mass = Mass 
 
    def __str__(self): 
        return "{0.Name} = {0.Mass}".format(self) 
 
def CreateElementsFromLists(elementList, molarMassList): 
    if (len(elementList) == len(molarMassList)):         
        return [Element(elementList[x], molarMassList[x]) for x in range(len(elementList))] 
    else: 
        print ("Lists should have equal length") 
 
elements = CreateElementsFromLists(elements, molarMass) 
 
for element in elements: 
    print (element) 

这将生成您可以使用的新元素列表。并输出:

H = 1.00794 N = 14.0067 C = 12.0107 O = 15.9994