从字典值返回列表索引
Returning list indices from a dictionary value
是否有从字典值中提取列表索引的简单方法?
Central_Bonds_Cyclo = { 'A1-A2' : [A1,A2], 'A1-A4' : [A1,A4], 'A2-A3' : [A2,A3], 'A3-A4' : [A3,A4] }
假设我想将每两个成员列表传递给一个函数:
CycloButadiene += LineSegment( A1, A2, 1, color = 'white' )
CycloButadiene += LineSegment( A1, A4, 1, color = 'white' )
CycloButadiene += LineSegment( A2, A3, 1, color = 'white' )
这就是我目前的处理方式:
def bond_split(AxAy):
x = AxAy[0]
y = AxAy[1]
return(x,y)
for bond in Central_Bonds_Cyclo:
Benzene += LineSegment(bond_split(Central_Bonds_Cyclo[bond])[0],
bond_split(Central_Bonds_Cyclo[bond])[1], 1, color = 'white' )
有没有更优雅的方法来解决这个问题?
您可以通过 *
语法使用参数解包:
for key, value in Central_Bonds_Cyclo.items():
Benzene += LineSegment(*value, 1, color='white')
是否有从字典值中提取列表索引的简单方法?
Central_Bonds_Cyclo = { 'A1-A2' : [A1,A2], 'A1-A4' : [A1,A4], 'A2-A3' : [A2,A3], 'A3-A4' : [A3,A4] }
假设我想将每两个成员列表传递给一个函数:
CycloButadiene += LineSegment( A1, A2, 1, color = 'white' )
CycloButadiene += LineSegment( A1, A4, 1, color = 'white' )
CycloButadiene += LineSegment( A2, A3, 1, color = 'white' )
这就是我目前的处理方式:
def bond_split(AxAy):
x = AxAy[0]
y = AxAy[1]
return(x,y)
for bond in Central_Bonds_Cyclo:
Benzene += LineSegment(bond_split(Central_Bonds_Cyclo[bond])[0],
bond_split(Central_Bonds_Cyclo[bond])[1], 1, color = 'white' )
有没有更优雅的方法来解决这个问题?
您可以通过 *
语法使用参数解包:
for key, value in Central_Bonds_Cyclo.items():
Benzene += LineSegment(*value, 1, color='white')