python为 lammps编写data文件

# Define the atom symbols and charges
atom_symbols = ['Si'] * Si_atoms + ['O'] * O_atoms + \
               ['Fe'] * Fe2_atoms + ['Fe'] * Fe3_atoms + \
               ['Al'] * Al_atoms + ['Ca'] * Ca_atoms + \
               ['Ti'] * Ti_atoms + ['Mg'] * Mg_atoms

atom_charges = {'Si': 1.89, 'O': -0.945, 'Fe': 0.0, 'Al': 1.4175,
                'Ca': 0.945, 'Ti': 1.89, 'Mg': 0.945}
# Assign different charges to Fe2+ and Fe3+
charges = []
for i, symbol in enumerate(atom_symbols):
    if symbol == 'Fe':
        if i < Fe2_atoms:
            charges.append(0.945)  # Charge for Fe2+
        else:
            charges.append(1.4175)  # Charge for Fe3+
    else:
        charges.append(atom_charges[symbol])
        

charges = [atom_charges[symbol] for symbol in atom_symbols]

问题描述:在这段代码中,for语句没有生效,没有成功给二价铁和三价铁赋不同电荷,是为什么?如何修改?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^